In this short tutorial, we'll look into how to install supervisor on our machine and configure it properly.
Introduction
Supervisor is a client/server system used to control a number of UNIX processes, more specifically processes related to a project or a customer. For example, you could use supervisor to spawn and monitor an arbitrary number of worker queues of your web application.
Installation
Install supervisor with
sudo apt-get install supervisor
on Unix based systems and
brew install supervisor
on MacOSX based systems.
Check Status
service supervisor status
Configuration
Supervisor configuration directory is /etc/supervisord/conf.d
, we can create our custom .conf
file inside of this directory.
Also, we can adjust our main /etc/supervisor/supervisord.conf
file as per our requirements, likeso,
; supervisor config file
[unix_http_server]
file=/var/run/supervisor.sock ; (the path to the socket file)
chmod=0770 ; sockef file mode (default 0700)
chown=root:supervisor
[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP)
; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket
; The [include] section can just contain the "files" setting. This
; setting can list multiple files (separated by whitespace or
; newlines). It can also contain wildcards. The filenames are
; interpreted as relative to this file. Included files *cannot*
; include files themselves.
[include]
files = /etc/supervisor/conf.d/*.conf
Save & exit the file and restart supervisor likeso,
sudo service supervisor restart
You can also check supervisor status by running the following command
systemctl status supervisord.service