|
@@ -0,0 +1,62 @@
|
|
|
|
+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 keys ``logfile``,
|
|
|
|
+ ``logfile_backups``, ``logfile_maxbytes``, ``log_stderr`` and
|
|
|
|
+ ``log_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 rename
|
|
|
|
+ ``logfile`` to ``stdout_logfile``, ``logfile_backups`` to
|
|
|
|
+ ``stdout_logfile_backups``, and ``logfile_maxbytes`` to
|
|
|
|
+ ``stdout_logfile_maxbytes`` at the very least to preserve your
|
|
|
|
+ configuration. If you created program sections where
|
|
|
|
+ ``log_stderr`` was true, to preserve the behavior of sending
|
|
|
|
+ stderr output to the stdout log, use the ``redirect_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 :program:`supervisorctl`) to work properly:
|
|
|
|
+
|
|
|
|
+ .. code-block:: ini
|
|
|
|
+
|
|
|
|
+ [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 only ``true`` or ``false``. It now accepts an additional
|
|
|
|
+ value, ``unexpected``, which indicates that the process should
|
|
|
|
+ restart from the ``EXITED`` state only if its exit code does not
|
|
|
|
+ match any of those represented by the ``exitcode`` parameter in
|
|
|
|
+ the process' configuration (implying a process crash). In
|
|
|
|
+ addition, the default for ``autorestart`` is now ``unexpected``
|
|
|
|
+ (it used to be ``true``, which meant restart unconditionally).
|
|
|
|
+
|
|
|
|
+#. We now allow :program:`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`` and ``sockchown`` 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 your
|
|
|
|
+ :file:`supervisord.conf` file. These sections have their own
|
|
|
|
+ options (where applicable) for ``port``, ``username``,
|
|
|
|
+ ``password``, ``chmod``, and ``chown``.
|
|
|
|
+
|
|
|
|
+#. All supervisord command-line options related to ``http_port``,
|
|
|
|
+ ``http_username``, ``http_password``, ``sockchmod`` and
|
|
|
|
+ ``sockchown`` have been removed (see above point for rationale).
|
|
|
|
+
|
|
|
|
+#. The option that used to be ``sockchown`` within the
|
|
|
|
+ ``[supervisord]`` section (and is now named ``chown`` 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.
|