------------------
- We now bundle our own patched version of Medusa contributed by Jason
Kirtland to allow Supervisor to run on Python 2.6. This was done
because Python 2.6 introduced backwards incompatible changes to
asyncore and asynchat in the stdlib.
- The console script ``memmon``, introduced in Supervisor 3.0a4, has
been moved to Superlance (http://pypi.python.org/pypi/superlance).
The Superlance package contains other useful monitoring tools designed
to run under Supervisor.
- Supervisorctl now correctly interprets all of the error codes that can
be returned when starting a process. Patch by Francesc Alted.
- New ``stdout_events_enabled`` and ``stderr_events_enabled`` config options
have been added to the ``[program:x]``, ``[fcgi-program:x]``, and
``[eventlistener:x]`` sections. These enable the emitting of new
PROCESS_LOG events for a program. If unspecified, the default is False.
If enabled for a subprocess, and data is received from the stdout or
stderr of the subprocess while not in the special capture mode used by
PROCESS_COMMUNICATION, an event will be emitted.
Event listeners can subscribe to either PROCESS_LOG_STDOUT or
PROCESS_LOG_STDERR individually, or PROCESS_LOG for both.
- Values for subprocess environment variables specified with environment=
in supervisord.conf can now be optionally quoted, allowing them to
contain commas. Patch by Tim Godfrey.
- Added a new event type, REMOTE_COMMUNICATION, that is emitted by a new
RPC method, supervisor.sendRemoteCommEvent().
- Patch for bug 268 (KeyError on ``here`` expansion for
stdout/stderr_logfile) from David E. Kindred.
- Add ``reread``, ``update``, and ``avail`` commands based on Anders
Quist's ``online_config_reload.diff`` patch. This patch extends
the "add" and "drop" commands with automagical behavior::
In supervisorctl:
supervisor> status
bar RUNNING pid 14864, uptime 18:03:42
baz RUNNING pid 23260, uptime 0:10:16
foo RUNNING pid 14866, uptime 18:03:42
gazonk RUNNING pid 23261, uptime 0:10:16
supervisor> avail
bar in use auto 999:999
baz in use auto 999:999
foo in use auto 999:999
gazonk in use auto 999:999
quux avail auto 999:999
Now we add this to our conf:
[group:zegroup]
programs=baz,gazonk
Then we reread conf:
supervisor> reread
baz: disappeared
gazonk: disappeared
quux: available
zegroup: available
supervisor> avail
bar in use auto 999:999
foo in use auto 999:999
quux avail auto 999:999
zegroup:baz avail auto 999:999
zegroup:gazonk avail auto 999:999
supervisor> status
bar RUNNING pid 14864, uptime 18:04:18
baz RUNNING pid 23260, uptime 0:10:52
foo RUNNING pid 14866, uptime 18:04:18
gazonk RUNNING pid 23261, uptime 0:10:52
The magic make-it-so command:
supervisor> update
baz: stopped
baz: removed process group
gazonk: stopped
gazonk: removed process group
zegroup: added process group
quux: added process group
supervisor> status
bar RUNNING pid 14864, uptime 18:04:43
foo RUNNING pid 14866, uptime 18:04:43
quux RUNNING pid 23561, uptime 0:00:02
zegroup:baz RUNNING pid 23559, uptime 0:00:02
zegroup:gazonk RUNNING pid 23560, uptime 0:00:02
supervisor> avail
bar in use auto 999:999
foo in use auto 999:999
quux in use auto 999:999
zegroup:baz in use auto 999:999
zegroup:gazonk in use auto 999:999
- Fix bug with symptom "KeyError: 'process_name'" when using a logfile name
including documented``process_name`` Python string expansions.
- Tab completions in the supervisorctl shell, and a foreground mode for
Supervisor, implemented as a part of GSoC. The supervisorctl program now
has a ``fg`` command, which makes it possible to supply inputs to a
process, and see its output/error stream in real time.
- Process config reloading implemented by Anders Quist. The
supervisorctl program now has the commands "add" and "drop".
"add <programname>" adds the process group implied by <programname>
in the config file. "drop <programname>" removes the process
group from the running configuration (it must already be stopped).
This makes it possible to add processes to and remove processes from
a running supervisord without restarting the supervisord process.
- Fixed a bug where opening the HTTP servers would fail silently
for socket errors other than errno.EADDRINUSE.
- Thanks to Dave Peticolas, using "reload" against a supervisord
that is running in the background no longer causes supervisord
to crash.
- Configuration options for logfiles now accept mixed case reserved
words (e.g. "AUTO" or "auto") for consistency with other options.
- childutils.eventdata was buggy, it could not deal with carriage returns
in data. See http://www.plope.com/software/collector/257. Thanks
to Ian Bicking.
- Per-process exitcodes= configuration now will not accept exit
codes that are not 8-bit unsigned integers (supervisord will not
start when one of the exit codes is outside the range of 0 - 255).
- Per-process ``directory`` value can now contain expandable values like
``%(here)s``. (See http://www.plope.com/software/collector/262).
- Accepted patch from Roger Hoover to allow for a new sort of
process group: "fcgi-program". Adding one of these to your
supervisord.conf allows you to control fastcgi programs. FastCGI
programs cannot belong to heterogenous groups.
The configuration for FastCGI programs is the same as regular programs
except an additional "socket" parameter. Substitution happens on the
socket parameter with the ``here`` and ``program_name`` variables::
[fcgi-program:fcgi_test]
;socket=tcp://localhost:8002
socket=unix:///path/to/fcgi/socket
- Supervisorctl now supports a plugin model for supervisorctl
commands.
- Added the ability to retrieve supervisord's own pid through
supervisor.getPID() on the XML-RPC interface or a new
"pid" command on supervisorctl.