配置文件示例
/etc/supervisord.d/*.conf
# program 后填写进程(组)名称
[program:spider]
# directory 是进程的当前目录
directory=/data/wwwroot
# command 是要执行的命令
command=/usr/bin/php spider.php
# 启动进程数
process_name=%(program_name)s_%(process_num)s
numprocs=4
# 进程运行的用户身份
user=www
# 是否随supervisor启动
autostart=true
# 是否在挂了之后重启,意外关闭后会重启,比如kill掉!
autorestart=true
# 失败启动尝试次数
startretries=3
# 标准错误输出的位置
stderr_logfile=/tmp/spider_err.log
# 标准输出的位置
stdout_logfile=/tmp/spider_out.log
命令
命令 | 说明 | 示例 |
---|---|---|
status | 显示所有受控程序的运行状态 | supervisorctl status |
update | 用于修改配置文件后重启程序,仅修改了配置的进程受影响 | supervisorctl update |
restart | 重新启用程序(不会重新读配置) 重新启动进程组 | 重启 spider 程序 supervisorctl restart spider 重启 spider 程序组 supervisorctl restart spider:* 重启所有受控程序 supervisorctl restart all |
stop/start | 停止程序/启动 | 同 restart 用法 |
tail -f | 查看日志 | 末尾 stderr 不写,默认读取 stdout 内容 supervisorctl tail -f spider stderr supervisorctl tail -f spider:spider_port=2 |
其他实用命令
#查找发生了错误的程序
supervisorctl status | grep FATAL
#重启所有发生了错误的进程
supervisorctl restart $( supervisorctl status | grep FATAL | awk '{print $1}' )
Version 4.2.2