supervisor
supervisor
supervisor是一个Python开发的通用的进程管理程序,可以管理和监控Linux上面的进程,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启,但它不能管理原本就是daemon的进程。并且supervisor本身自己也是一个python库,因此可以使用pip进行直接安装:
1  | pip install supervisor  | 
使用
supervisor管理进程依赖的相应的配置文件,配置文件可以通过命令生成:
1  | echo_supervisord_conf > /app/install_files/supervisor.conf  | 
配置文件当中有许多可以配置的选项,这里不一一列举,只给出部分配置:
1  | [program:project_name]  | 
project_name: 必须是唯一的,否则将会出现错乱directory: 填写你启动脚本时的工作目录,如果你使用脚本的绝对目录,那么directory可以不设置command:是执行脚本的命令,不需要使用nohup让其变为后代进程,supervisor会自动将其变为后台进程autostart: 配置为True, supervisor 启动时,任务跟随启动autorestart: 配置为True, 进程不存在时会自动重启, 默认重启3次,想修改重启次数,可以配置startretries, 设置最多重启的次数user: 设置启动任务时所用的用户,supervisor 有必要使用root账号启动,这样才有权限配置其他启动账号stdout_logfile: 配置输出日志
启动
1  | supervisord -c /etc/supervisord.conf  | 
这里路径为你当前文件所处的路径
其他命令:
1  | supervisorctl status # 查看进程状态  | 
总结
当你的程序需要对程序的进程进行管理的时候,尤其是部署服务的时候,这个工具非常适合python。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 念念不忘,必有回响!








