3.0b2 (2013-05-28)

  • The behavior of the program option user has changed. In all previousversions, if supervisord failed to switch to the user, a warning wouldbe sent to the stderr log but the child process would still be spawned.This means that a mistake in the config file could result in a childprocess being unintentionally spawned as root. Now, supervisord willnot spawn the child unless it was able to successfully switch to the user.Thanks to Igor Partola for reporting this issue.
  • If a user specified in the config file does not exist on the system,supervisord will now print an error and refuse to start.
  • Reverted a change to logging introduced in 3.0b1 that was intended to allowmultiple processes to log to the same file with the rotating log handler.The implementation caused supervisord to crash during reload and to leakfile handles. Also, since log rotation options are given on a per-programbasis, impossible configurations could be created (conflicting rotationoptions for the same file). Given this and that supervisord now has syslogsupport, it was decided to remove this feature. A warning was added to thedocumentation that two processes may not log to the same file.
  • Fixed a bug where parsing command= could cause supervisord to crash ifshlex.split() fails, such as a bad quoting. Patch by Scott Wilson.
  • It is now possible to use supervisorctl on a machine with nosupervisord.conf file by supplying the connection information incommand line options. Patch by Jens Rantil.
  • Fixed a bug where supervisord would crash if the syslog handler was usedand supervisord received SIGUSR2 (log reopen request).
  • Fixed an XML-RPC bug where calling supervisor.getProcessInfo() with a badname would cause a 500 Internal Server Error rather than the returninga BAD_NAME fault.
  • Added a favicon to the web interface. Patch by Caio Ariede.
  • Fixed a test failure due to incorrect handling of daylight savings timein the childutils tests. Patch by Ildar Hizbulin.
  • Fixed a number of pyflakes warnings for unused variables, imports, anddead code. Patch by Philippe Ombredanne.