Supervisor Components

supervisord

The server piece of supervisor is named supervisord. Itis responsible for starting child programs at its own invocation,responding to commands from clients, restarting crashed or exitedsubprocesseses, logging its subprocess stdout and stderroutput, and generating and handling “events” corresponding to pointsin subprocess lifetimes.

The server process uses a configuration file. This is typicallylocated in /etc/supervisord.conf. This configuration fileis a “Windows-INI” style config file. It is important to keep thisfile secure via proper filesystem permissions because it may containunencrypted usernames and passwords.

supervisorctl

The command-line client piece of the supervisor is namedsupervisorctl. It provides a shell-like interface to thefeatures provided by supervisord. Fromsupervisorctl, a user can connect to differentsupervisord processes (one at a time), get status on thesubprocesses controlled by, stop and start subprocesses of, and get lists ofrunning processes of a supervisord.

The command-line client talks to the server across a UNIX domainsocket or an internet (TCP) socket. The server can assert that theuser of a client should present authentication credentials before itallows him to perform commands. The client process typically usesthe same configuration file as the server but any configuration filewith a [supervisorctl] section in it will work.

Web Server

A (sparse) web user interface with functionality comparable tosupervisorctl may be accessed via a browser if you startsupervisord against an internet socket. Visit the serverURL (e.g. http://localhost:9001/) to view and control processstatus through the web interface after activating the configurationfile’s [inet_http_server] section.

XML-RPC Interface

The same HTTP server which serves the web UI serves up an XML-RPCinterface that can be used to interrogate and control supervisor andthe programs it runs. See XML-RPC API Documentation.