Configuring Supervisor
Supervisor is a process control system used by the IzoT SDK to monitor and control the processes of an IzoT Server or IzoT application. It is configured by a set of *.conf files in the $IZOT/etc/supervisor directory.
Following is an example configuration file (this one is for the IzoT Server processes):
# IzoT Server Group
[group:server]
programs=network,api
# IzoT Server - Network Server (LonBridge) prog = server:network
[program:network]
command="/home/debian/izot-sdk/bin/LonBridge"
directory=/home/debian/izot-sdk/etc/lonbridge
environment=LD_LIBRARY_PATH="/home/debian/izot-sdk/lib"
user=debian
priority=100
startsecs=30
autostart=false
startretries=30
stdout_logfile=/home/debian/izot-sdk/etc/supervisor/server-network.log
redirect_stderr=true
# IzoT Server - REST API Server (via Gunicorn) prog = server:api
[program:api]
command="/home/debian/izot-sdk/bin/python3" "/home/debian/izot-sdk/izot/server/manage.py" run_gunicorn localhost:8000 directory=/home/debian/izot-sdk/izot/server
environment=IZOT="/home/debian/izot-sdk",PYTHONPATH="/home/debian/izot-sdk"
user=debian
priority=200
startsecs=30
autostart=false
startretries=30
stdout_logfile=/home/debian/izot-sdk/etc/supervisor/server-api.log
redirect_stderr=true
where
Setting | Description |
|---|---|
[group:groupname] | Names a group of programs to be controlled by Supervisor. |
programs | A comma-separated list of programnames (see below) belonging to groupname. |
[program:programname] | Defines a program to be controlled by Supervisor. |
command | The command line that Supervisor will use to start the program. |
directory | The directory that the program will be started in. |
environment | A comma-separated list of environment variables that will be set in the program's process. |
user | The user account under which the program will be started. |
priority | Used to determine the order that Supervisor (auto-)starts the program relative to other auto-start programs. A lower value program will be started before a higher value program. |
startsecs | The number of seconds that Supervisor will wait after starting a program before determining whether it started successfully. This time should be large enough for the program to initialize completely. |
autostart | Whether Supervisor should automatically start the program when it starts (e.g., on initial power up or following a reboot). |
startretries | The number of successive times Supervisor should attempt to start a program before giving up. |
stdout_logfile | The path to a logfile that will receive the standard output from the program. Note that Supervisor-started programs do not run with an attached terminal so output is usually discarded. |
redirect_stderr | Whether Supervisor should also redirect the standard error stream from program to the stdout_logfile. |
For further details on these and other settings, see the Supervisor Documentation.