Starting a Tango control system#

audience:all

With a database#

Starting the Tango control system simply means starting its database device server on a well defined host using a well defined port. Use the host name and the port number to build the TANGO_HOST environment variable. See the Running a C++ device server section on how to do this. Note that the underlying database server must be started before the Tango database device server. The Tango database server connects to database server using a default login name set to root. You can change this behaviour with the MYSQL_USER and MYSQL_PASSWORD environment variables. Define them before starting the database server. All tango environment variables can also be set in the tangorc configuration file.

An example tango rc file /etc/tangorc:

MYSQL_USER=dbuser
MYSQL_PASSWORD=secret
TANGO_HOST=my-hostname.eu:10000

If you are using the Tango administration graphical tool called Astor, you also need to start a specific Tango device server called Starter on each host where Tango device server(s) are running. This Starter device server is able to start even before the Tango database device server is started. In this case, it will enter a loop in which it periodically tries to access the Tango database device. The loop exits and the server starts only if the database device access succeeds.

Without a database#

When used without a database, there is no additional process to start. Simply start a device server using the -nodb option (and eventually the -dlist option) on a specific port using -ORBendPoint. See Run a device server without a database to find information on how to write and start a Tango device server without using the database.

With a file used as a database#

When used with a File Database, there is no additional process to start. Simply start a device server using the -file option specifying the file and -ORBendPoint for the port. See Run a device server with the File Database to find information on how to start Tango device server using a database on file.

With TAC (Tango Access Control)#

Warning

This is client side only and not secure. Use that only to prevent accidental changes to tango device servers and not for security.

Using the Tango controlled access means starting a specific device server called TangoAccessControl. By default, this server has to be started with the instance name set to 1 and its device name is sys/access_control/1. The command to start this device server is:

  TangoAccessControl 1

This server connects to MariaDB using a default login name set to root. As mentioned above, you can change this behaviour with the MYSQL_USER and MYSQL_PASSWORD environment variables. Define them before starting the controlled access device server. This server also uses the MYSQL_HOST environment variable if you need to connect it to some MySQL server running on another host. The syntax of this environment varaible is host:port. The port is optional and if it is not defined, the MariaDB default port is used (3306). If it is not defined at all, a connection to the localhost is made. This controlled access system uses the Tango database to retrieve user rights and it is not possible to run it in a Tango control system running without a database.