1. 安装
pip install supervisor
2. 初始化配置文件
echo_supervisord_conf > /etc/supervisord.conf
3. 引入形式管理配置文件
创建目录存在配置文件
mkdir /etc/supervisord.d/
修改基础配置文件
[include]
files = /etc/supervisord.d/*.conf
4. 配置文件示例
在/etc/supervisord.d/目录下新增一个conf文件
[program:project_name]
directory = 工作目录
command = 脚本的启动命令
autostart = true
autorestart = true
user = loanward
stdout_logfile = /data/log/pro_stdout.log
- project_name 必须是唯一的,否则将会出现错乱
- directory 启动脚本时的工作目录
- command 执行脚本的命令,不需要使用 nohup 让其变为后代进程,supervisor 会自动将其变为后台进程
- autostart 默认为True, supervisor 启动时,任务跟随启动
- autorestart 默认为True, 进程不存在时会自动重启, 默认重启3次,想修改重启次数,可以配置 startretries, 设置最多重启的次数
- user 设置启动任务时所用的用户,supervisor 有必要使用root账号启动,这样才有权限配置其他启动账号
- stdout_logfile 配置输出日志
5. 启动supervisor
supervisord -c /etc/supervisord.conf
6. 使用supervisorctl 进行管理
supervisorctl 是 supervisord 的一个命令行客户端工具,使用 supervisorctl 可以遍历的对进程进行管理,支持的命令如下
supervisorctl status
supervisorctl stop project_name
supervisorctl start project_name
supervisorctl restart project_name
supervisorctl reread
supervisorctl update