Supervisor User's Guide

Version 3.0a8

Chris McDonough

Agendaless Consulting, Inc. (http://agendaless.com)

2010-06-01


Table of Contents

1. Using Supervisor
1.1. Introduction
1.1.1. Overview
1.1.2. Supervisor Components
1.1.3. Platform Requirements
1.2. Installing
1.2.1. Installing To A System With Internet Access
1.2.2. Installing To A System Without Internet Access
1.2.3. Creating A Configuration File
1.3. Running Supervisor
1.3.1. Adding a Program
1.3.2. Running Supervisord
1.3.3. Running Supervisorctl
1.3.4. Signals
1.3.5. Runtime Security
1.4. Configuration File Syntax and Semantics
1.4.1. [unix_http_server] Section Settings
1.4.2. [inet_http_server] Section Settings
1.4.3. [supervisord] Section Settings
1.4.4. [supervisorctl] Section Settings
1.4.5. [program:x] Section Settings
1.4.6. [include] Section Settings
1.4.7. [group:x] Section Settings
1.4.8. [fcgi-program:x] Section Settings
1.4.9. [eventlistener:x] Section Settings
1.4.10. [rpcinterface:x] Section Settings
1.5. Subprocesses
1.5.1. Nondaemonizing of Subprocesses
1.5.2. pidproxy Program
1.5.3. Subprocess Environment
1.5.4. Process States
1.6. Logging
1.6.1. Activity Log
1.6.2. Child Process Logs
1.7. Events
1.7.1. Event Listeners and Event Notifications
1.7.2. Configuring an Event Listener
1.7.3. Writing an Event Listener
1.7.4. Event Types
1.8. Extending Supervisor's XML-RPC API
1.8.1. Configuring XML-RPC Interface Factories
1.9. Upgrading From Older Releases
1.9.1. Upgrading from Supervisor 2 to Supervisor 3
1.10. Frequently Asked Questions
1.11. Development of Supervisor
1.11.1. Development Resources
1.11.2. Contributing
1.11.3. Sponsoring
1.11.4. Author Information
2. XML-RPC API Reference
2.1. Status & Control
2.1.1. supervisor.getAPIVersion()
2.1.2. supervisor.getSupervisorVersion()
2.1.3. supervisor.getIdentification()
2.1.4. supervisor.getState()
2.1.5. supervisor.getPID()
2.1.6. supervisor.readLog()
2.1.7. supervisor.clearLog()
2.1.8. supervisor.shutdown()
2.1.9. supervisor.restart()
2.2. Process Control
2.2.1. supervisor.getProcessInfo()
2.2.2. supervisor.getAllProcessInfo()
2.2.3. supervisor.startProcess()
2.2.4. supervisor.startAllProcesses()
2.2.5. supervisor.startProcessGroup()
2.2.6. supervisor.stopProcessGroup()
2.2.7. supervisor.stopProcess()
2.2.8. supervisor.stopAllProcesses()
2.2.9. supervisor.sendProcessStdin()
2.2.10. supervisor.sendRemoteCommEvent() (added in 3.0a7)
2.2.11. supervisor.addProcessGroup() (added in 3.0a7)
2.2.12. supervisor.removeProcessGroup() (added in 3.0a7)
2.3. Process Logging
2.3.1. supervisor.readProcessStdoutLog()
2.3.2. supervisor.readProcessStderrLog()
2.3.3. supervisor.tailProcessStdoutLog()
2.3.4. supervisor.tailProcessStderrLog()
2.3.5. supervisor.clearProcessLogs()
2.3.6. supervisor.clearAllProcessLogs()
2.4. System Methods
2.4.1. system.listMethods()
2.4.2. system.methodHelp()
2.4.3. system.methodSignature()
2.4.4. system.multicall()
2.5. Fault Codes
Index

List of Figures

1.1. Subprocess State Transition Graph

List of Tables

1.1. supervisord Command-Line Options
1.2. Signal Handlers
1.3. [unix_http_server] Section Values
1.4. [inet_http_server] Section Values
1.5. [supervisord] Section Values
1.6. [supervisorctl] Section Values
1.7. [program:x] Section Values
1.8. [include] Section Values
1.9. [group:x] Section Values
1.10. [fcgi-program:x] Additional Values
1.11. [rpcinterface:x] Section Values
1.12. Process States
1.13. Activity Log Levels
1.14. Header Tokens
1.15. Event Listener States
1.16. EVENT Event Type
1.17. PROCESS_STATE Event Type
1.18. PROCESS_STATE_STARTING Event Type
1.19. PROCESS_STATE_RUNNING Event Type
1.20. PROCESS_STATE_BACKOFF Event Type
1.21. PROCESS_STATE_STOPPING Event Type
1.22. PROCESS_STATE_EXITED Event Type
1.23. PROCESS_STATE_STOPPED Event Type
1.24. PROCESS_STATE_FATAL Event Type
1.25. PROCESS_STATE_UNKNOWN Event Type
1.26. REMOTE_COMMUNICATION Event Type
1.27. PROCESS_LOG Event Type
1.28. PROCESS_LOG_STDOUT Event Type
1.29. PROCESS_LOG_STDERR Event Type
1.30. PROCESS_COMMUNICATION Event Type
1.31. PROCESS_COMMUNICATION_STDOUT Event Type
1.32. PROCESS_COMMUNICATION_STDERR Event Type
1.33. SUPERVISOR_STATE_CHANGE Event Type
1.34. SUPERVISOR_STATE_CHANGE_RUNNING Event Type
1.35. SUPERVISOR_STATE_CHANGE_STOPPING Event Type
1.36. TICK Event Type
1.37. TICK_5 Event Type
1.38. TICK_60 Event Type
1.39. TICK_3600 Event Type
1.40. Authors
1.41. Contributors
2.1. supervisor.getAPIVersion() Parameters
2.2. supervisor.getAPIVersion() Return Value
2.3. supervisor.getSupervisorVersion() Parameters
2.4. supervisor.getSupervisorVersion() Return Value
2.5. supervisor.getIdentification() Parameters
2.6. supervisor.getIdentification() Return Value
2.7. supervisor.getState() Parameters
2.8. supervisor.getState() Return Value
2.9. supervisor.getState() State Codes
2.10. supervisor.getPID() Parameters
2.11. supervisor.getPID() Return Value
2.12. supervisor.readLog() Parameters
2.13. supervisor.readLog() Return Value
2.14. supervisor.readLog() Offset and Length
2.15. supervisor.clearLog() Parameters
2.16. supervisor.clearLog() Return Value
2.17. supervisor.shutdown() Parameters
2.18. supervisor.shutdown() Return Value
2.19. supervisor.restart() Parameters
2.20. supervisor.restart() Return Value
2.21. supervisor.getProcessInfo() Parameters
2.22. supervisor.getProcessInfo() Return Value
2.23. supervisor.getAllProcessInfo() Parameters
2.24. supervisor.getAllProcessInfo() Return Value
2.25. supervisor.startProcess() Parameters
2.26. supervisor.startProcess() Return Value
2.27. supervisor.startAllProcesses() Parameters
2.28. supervisor.startAllProcesses() Return Value
2.29. supervisor.startProcessGroup() Parameters
2.30. supervisor.startProcessGroup() Return Value
2.31. supervisor.stopProcessGroup() Parameters
2.32. supervisor.stopProcessGroup() Return Value
2.33. supervisor.stopProcess() Parameters
2.34. supervisor.stopProcess() Return Value
2.35. supervisor.stopAllProcesses() Parameters
2.36. supervisor.stopAllProcesses() Return Value
2.37. supervisor.sendProcessStdin() Parameters
2.38. supervisor.sendProcessStdin() Return Value
2.39. supervisor.sendRemoteCommEvent() Parameters
2.40. supervisor.sendRemoteCommEvent() Return Value
2.41. supervisor.addProcessGroup() Parameters
2.42. supervisor.addProcessGroup() Return Value
2.43. supervisor.removeProcessGroup() Parameters
2.44. supervisor.removeProcessGroup() Return Value
2.45. supervisor.readProcessStdoutLog() Parameters
2.46. supervisor.readProcessStdoutLog() Return Value
2.47. supervisor.readProcessLog() Offset and Length
2.48. supervisor.tailProcessStdoutLog() Parameters
2.49. supervisor.tailProcessStdoutLog() Return Value
2.50. supervisor.clearProcessLogs() Parameters
2.51. supervisor.clearProcessLogs() Return Value
2.52. supervisor.clearAllProcessLogs() Parameters
2.53. supervisor.clearProcessLogs() Return Value
2.54. system.listMethods() Parameters
2.55. system.listMethods() Return Value
2.56. system.methodHelp() Parameters
2.57. system.methodHelp() Return Value
2.58. system.methodSignature() Parameters
2.59. system.methodSignature() Return Value
2.60. system.multicall() Parameters
2.61. system.multicall() Return Value
2.62. Supervisor Fault Codes

List of Examples

1.1. [unix_http_server] Section Example
1.2. [inet_http_server] Section Example
1.3. [supervisord]Section Example
1.4. [supervisorctl]Section Example
1.5. [program:x] Section Example
1.6. [include] Section Example
1.7. [group:x] Section Example
1.8. [fcgi-program:x] Section Example
1.9. [eventlistener:x] Section Example
1.10. [rpcinterface:x] Section Example
1.11. Sample Activity Log Output