Upgrading Supervisor 2 to 3¶
The following is true when upgrading an installation from Supervisor 2.X to Supervisor 3.X:
In
[program:x]
sections, the keyslogfile
,logfile_backups
,logfile_maxbytes
,log_stderr
andlog_stdout
are no longer valid. Supervisor2 logged both stderr and stdout to a single log file. Supervisor 3 logs stderr and stdout to separate log files. You’ll need to renamelogfile
tostdout_logfile
,logfile_backups
tostdout_logfile_backups
, andlogfile_maxbytes
tostdout_logfile_maxbytes
at the very least to preserve your configuration. If you created program sections wherelog_stderr
was true, to preserve the behavior of sending stderr output to the stdout log, use theredirect_stderr
boolean in the program section instead.The supervisor configuration file must include the following section verbatim for the XML-RPC interface (and thus the web interface and supervisorctl) to work properly:
[rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
The semantics of the
autorestart
parameter within[program:x]
sections has changed. This parameter used to accept onlytrue
orfalse
. It now accepts an additional value,unexpected
, which indicates that the process should restart from theEXITED
state only if its exit code does not match any of those represented by theexitcode
parameter in the process’ configuration (implying a process crash). In addition, the default forautorestart
is nowunexpected
(it used to betrue
, which meant restart unconditionally).We now allow supervisord to listen on both a UNIX domain socket and an inet socket instead of making listening on one mutually exclusive with listening on the other. As a result, the options
http_port
,http_username
,http_password
,sockchmod
andsockchown
are no longer part of the[supervisord]
section configuration. These have been supplanted by two other sections:[unix_http_server]
and[inet_http_server]
. You’ll need to insert one or the other (depending on whether you want to listen on a UNIX domain socket or a TCP socket respectively) or both into yoursupervisord.conf
file. These sections have their own options (where applicable) forport
,username
,password
,chmod
, andchown
.All supervisord command-line options related to
http_port
,http_username
,http_password
,sockchmod
andsockchown
have been removed (see above point for rationale).The option that used to be
sockchown
within the[supervisord]
section (and is now namedchown
within the[unix_http_server]
section) used to accept a dot-separated (user.group
) value. The separator now must be a colon, e.g.user:group
. Unices allow for dots in usernames, so this change is a bugfix.