README.txt 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. Supervisor: A System for Allowing the Control of Process State on UNIX
  2. Introduction
  3. The supervisor is a client/server system that allows its users to
  4. control a number of processes on UNIX-like operating systems. It
  5. was inspired by the following:
  6. - It is often inconvenient to need to write "rc.d" scripts for
  7. every single process instance. rc.d scripts are a great
  8. lowest-common-denominator form of process
  9. initialization/autostart/management, but they can be painful to
  10. write and maintain. Additionally, rc.d scripts cannot
  11. automatically restart a crashed process and many programs do not
  12. restart themselves properly on a crash. Supervisord starts
  13. processes as its subprocesses, and can be configured to
  14. automatically restart them on a crash. It can also automatically
  15. be configured to start processes on its own invocation.
  16. - It's often difficult to get accurate up/down status on processes
  17. on UNIX. Pidfiles often lie. Supervisord starts processes as
  18. subprocesses, so it always knows the true up/down status of its
  19. children and can be queried conveniently for this data.
  20. - Users who need to control process state often need only to do
  21. that. They don't want or need full-blown shell access to the
  22. machine on which the processes are running. Supervisorctl allows
  23. a very limited form of access to the machine, essentially
  24. allowing users to see process status and control
  25. supervisord-controlled subprocesses by emitting "stop", "start",
  26. and "restart" commands from a simple shell or web UI.
  27. - Users often need to control processes on many machines.
  28. Supervisor provides a simple, secure, and uniform mechanism for
  29. interactively and automatically controlling processes on groups
  30. of machines.
  31. - Processes which listen on "low" TCP ports often need to be
  32. started and restarted as the root user (a UNIX misfeature). It's
  33. usually the case that it's perfectly fine to allow "normal"
  34. people to stop or restart such a process, but providing them with
  35. shell access is often impractical, and providing them with root
  36. access or sudo access is often impossible. It's also (rightly)
  37. difficult to explain to them why this problem exists. If
  38. supervisord is started as root, it is possible to allow "normal"
  39. users to control such processes without needing to explain the
  40. intricacies of the problem to them.
  41. - Processes often need to be started and stopped in groups,
  42. sometimes even in a "priority order". It's often difficult to
  43. explain to people how to do this. Supervisor allows you to
  44. assign priorities to processes, and allows user to emit commands
  45. via the supervisorctl client like "start all", and "restart all",
  46. which starts them in the preassigned priority order.
  47. Additionally, processes can be grouped into "process groups" and
  48. a set of logically related processes can be stopped and started
  49. as a unit.
  50. Supported Platforms
  51. Supervisor has been tested and is known to run on Linux (Ubuntu
  52. Dapper), Mac OS X (10.4), and Solaris (10 for Intel) and FreeBSD
  53. 6.1. It will likely work fine on most UNIX systems.
  54. Supervisor will not run at all under any version of Windows.
  55. Supervisor is known to work with Python 2.3.3 or better, and it may
  56. work with Python 2.3.0, Python 2.3.1 and Python 2.3.2 (although
  57. these have not been tested). It will not work under Python versions
  58. 2.2 or before.
  59. Documentation
  60. You can view the current Supervisor documentation online "in html
  61. format":http://supervisord.org/manual/ . This is where you should
  62. go for detailed installation and configuration documentation.
  63. XXX We need some way of getting people the entire docs set without
  64. needing to read it via HTML online.
  65. Mailing list, Reporting Bugs, and Viewing the Source Repository
  66. You may subscribe to the 'Supervisor-users' "mailing
  67. list":http://lists.supervisord.org/mailman/listinfo/supervisor-users
  68. Please report bugs at "the
  69. collector":http://www.plope.com/software/collector .
  70. XXX get a better bugtracker
  71. You can view the source repository for supervisor via
  72. http://svn.supervisord.org:"http://svn.supervisord.org"
  73. A Bazaar mirror can be found in
  74. "Launchpad":https://code.launchpad.net/supervisord
  75. Contributing
  76. If you'd like to contribute to supervisor directly, please contact
  77. the "supervisor-users
  78. mailing list":http://lists.supervisord.org/mailman/listinfo/supervisor-users
  79. Author Information
  80. Chris McDonough (chrism@plope.com)
  81. "Agendaless Consulting":http://www.agendaless.com
  82. Mike Naberezny (mike@maintainable.com)
  83. "Maintainable Software":http://www.maintainable.com