参考链接:
http://supervisord.org/
https://www.jianshu.com/p/ac6c84a2f415
- 安装
$ pip install supervisor
- 默认配置文件
$ mkdir /etc/supervisor
$ echo_supervisord_conf > /etc/supervisor/supervisord.conf
- 管理进程配置
$ # 创建配置文件保存路径
$ mkdir /etc/supervisor/conf.d
$ # 以进程 save_image 为例,
$ # 它通过http接收图片并保存在某个路径下,给调用方返回下载图片的链接
$ touch /etc/supervisor/conf.d/save_image.ini
$ # 将以下内容添加到 save_image.ini 中
[program:save_image]
command=/home/save_image/bin/save_image
directory=/home/save_image
autostart=false
startsecs=3
autorestart=true
startretries=1024
stdout_logfile=/home/log/supervisord/save_image.log
stderr_logfile=NONE
redirect_stderr=true
user=root
$ # /etc/supervisor/supervisord.conf 的最后两行如下:
;[include]
;files = relative/directory/*.ini
$ # 将这两行改为如下格式:
[include]
files = ./conf.d/*.ini
- 启动supervisor
$ supervisord -c /etc/supervisor/supervisord.conf
- 通过superviser启动进程
$ supervisorctl start save_image
现在supervisor已经接管了save_image,如果save_image这个进程因为非supervisor的原因终止(如coredump、kill)了的话,supervisor将自动将其重新启动。