适用场景:任务退出后需要自动重启
安装
centos 建议不要用 yum 安装,因为版本较低
使用 pip 进行安装1
pip install -U supervisor
使用
有 supervisord 和 supervisorctl 两个命令,分别用于启动 daemon 程序和与之交互
启动 daemon 程序1
supervisord [-c <config file>]
查看状态1
supervisorctl [-c <config file>] status
重新加载配置文件1
2
3
4
5
6
7# 直接重启
supervisorctl [-c <config file>] reload
# 先查看哪些配置需要重新加载
supervisorctl [-c <config file>] reread
# 更新对应配置
supervisorctl [-c <config file>] update <program1> [<program2> [...]]
配置
初始化1
echo_supervisord_conf >supervisor.ini
启用 web 页面1
2
3
4[inet_http_server]
port=<host>:<port>
username=<basic auth username>
password=<basic auth password>
为了防止多个 supervisor 相互覆盖,建议修改 log, pid, sock 文件地址1
2
3
4
5
6
7[unix_http_server]
file=%(ENV_HOME)s/log/supervisor.sock
[supervisord]
logfile=%(ENV_HOME)s/log/supervisord.log
pidfile=%(ENV_HOME)s/log/supervisord.pid
[supervisorctl]
serverurl=unix:///%(ENV_HOME)s/log/supervisor.sock
添加子配置目录,建议使用 ini 后缀,方便 ini 高亮1
2[include]
files = /path/to/your/conf/*.ini
一个 ini 文件例子1
2
3
4
5
6
7[program:pitaya]
directory = /home/test
command = sh test.sh
autostart = true
autorestart = true
stdout_logfile = %(ENV_HOME)s/log/test.log
redirect_stderr=true
更多 program 的配置查看官方文档
允许设置环境变量、多进程实例、按进程组杀死进程等