Configuring Supervisor

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

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.