4.0.0 (2019-04-05)

  • Support for Python 3 has been added. On Python 3, Supervisor requiresPython 3.4 or later. Many thanks to Vinay Sajip, Scott Maxwell, Palm Kevin,Tres Seaver, Marc Abramowitz, Son Nguyen, Shane Hathaway, Evan Andrews,and Ethan Hann who all made major contributions to the Python 3 portingeffort. Thanks also to all contributors who submitted issue reports andpatches towards this effort.
  • Support for Python 2.4, 2.5, and 2.6 has been dropped. On Python 2,Supervisor now requires Python 2.7.
  • The supervisor package is no longer a namespace package.
  • The behavior of the config file expansion %(here)s has changed. Inprevious versions, a bug caused %(here)s to always expand to thedirectory of the root config file. Now, when %(here)s is used insidea file included via [include], it will expand to the directory ofthat file. Thanks to Alex Eftimie and Zoltan Toth-Czifra for the patches.
  • The default value for the config file setting exitcodes=, the expectedexit codes of a program, has changed. In previous versions, it was 0,2.This caused issues with Golang programs where panic() causes the exitcode to be 2. The default value for exitcodes is now 0.
  • An undocumented feature where multiple supervisorctl commands could becombined on a single line separated by semicolons has been removed.
  • supervisorctl will now set its exit code to a non-zero value when anerror condition occurs. Previous versions did not set the exit code formost error conditions so it was almost always 0. Patch by Luke Weber.
  • Added new stdout_syslog and stderr_syslog options to the configfile. These are boolean options that indicate whether process output willbe sent to syslog. Supervisor can now log to both files and syslog at thesame time. Specifying a log filename of syslog is still supportedbut deprecated. Patch by Jason R. Coombs.