Supervisor

Supervisor is a client/server system that allows its users to control a number of processes on UNIX-like operating systems.
Download

Supervisor Ranking & Summary

Advertisement

  • Rating:
  • License:
  • ZPL
  • Price:
  • FREE
  • Publisher Name:
  • Chris McDonough
  • Publisher web site:
  • http://www.plope.com/software/supervisor2/

Supervisor Tags


Supervisor Description

Supervisor is a client/server system that allows its users to control a number of processes on UNIX-like operating systems. Supervisor is a client/server system that allows its users to control a number of processes on UNIX-like operating systems. It was inspired by the following:· It is often inconvenient to need to write "rc.d" scripts for every single process instance. rc.d scripts are a great lowest-common-denominator form of process initialization/autostart/management, but they can be painful to write and maintain. Additionally, rc.d scripts cannot automatically restart a crashed process and many programs do not restart themselves properly on a crash. Supervisord starts processes as its subprocesses, and can be configured to automatically restart them on a crash. It can also automatically be configured to start processes on its own invocation.· It's often difficult to get accurate up/down status on processes on UNIX. Pidfiles often lie. Supervisord starts processes as subprocesses, so it always knows the true up/down status of its children and can be queried conveniently for this data.· Users who need to control process state often need only to do that. They don't want or need full-blown shell access to the machine on which the processes are running. Supervisorctl allows a very limited form of access to the machine, essentially allowing users to see process status and control supervisord-controlled subprocesses by emitting "stop", "start", and "restart" commands from a simple shell or web UI.· Users often need to control processes on many machines. Supervisor provides a simple, secure, and uniform mechanism for interactively and automatically controlling processes on groups of machines.· Processes which listen on "low" TCP ports often need to be started and restarted as the root user (a UNIX misfeature). It's usually the case that it's perfectly fine to allow "normal" people to stop or restart such a process, but providing them with shell access is often impractical, and providing them with root access or sudo access is often impossible. It's also (rightly) difficult to explain to them why this problem exists. If supervisord is started as root, it is possible to allow "normal" users to control such processes without needing to explain the intricacies of the problem to them.· Processes often need to be started and stopped in groups, sometimes even in a "priority order". It's often difficult to explain to people how to do this. Supervisor allows you to assign priorities to processes, and allows user to emit commands via the supervisorctl client like "start all", and "restart all", which starts them in the preassigned priority order. Additionally, processes can be grouped into "process groups" and a set of logically related processes can be stopped and started as a unit.Requirements:· Python 2.3 or betterInstalling:· Run "python setup.py install". This will download and install all distributions depended upon by supervisor and finally install supervisor itself. Once that's done, copy the "sample.conf" file you'll find in the same directory as this file to /etc/supervisord.conf and modify to your liking. If you'd rather not put the supervisord.conf file in /etc, you can place it anywhere and start supervisord and point it at the configuration file via the -c flag, e.g. "python supervisord.py -c /path/to/sample/conf" or, if you use the shell script named "supervisord", "supervisord -c /path/to/sample.conf".· I make reference below to a "$BINDIR" when explaining how to run supervisord and supervisorctl. This is the "bindir" directory that your Python installation has been configured with. For example, for an installation of Python installed via "./configure --prefix=/usr/local/python; make; make install", $BINDIR would be "/usr/local/python/bin". Python interpreters on different platforms use different $BINDIRs. Look at the output of "setup.py install" if you can't figure out where yours is.What's New in This Release:· An event notification system was added.· Subprocesses can emit data on stdout or stderr between special tokens which cause supervisor to perform a "process communications" event notification.· Process groups were added.· The XML-RPC interface API can be extended in arbitrary ways by registering new top-level namespace factories.· The stdout and stderr of processes may now be logged independently.· Web interface styling was improved.


Supervisor Related Software