使用supervisor 管理进程

Supervisord是用Python实现的一款非常实用的进程管理工具,类似于monit(关于monit见我的博客:用monit监控系统关键进程),monit和supervisord的一个比较大的差异是supervisord管理的进程必须由supervisord来启动,monit可以管理已经在运行的程序;supervisord还要求管理的程序是非daemon程序,supervisord会帮你把它转成daemon程序,因此如果用supervisord来管理nginx的话,必须在nginx的配置文件里添加一行设置daemon off让nginx以非daemon方式启动。
安装方式可以采用pip安装,也可以使用easy_install或者apt-get。
使用apt-get比较简单,系统级的配置都会自动处理好

apt-get安装

apt-get install supervisor

安装完成后配置文件默认在/etc/supervisor目录下,其中supervisord.conf是总的配置文件conf.d内存放每个管理进程的配置,一般配置如下

[program:dm_mysql-data2es_py]
autorestart=true  ;自动启动
directory=/var/www/dmp/data-stream-program/  ;主目录
command=/usr/bin/python3.5  /var/www/dmp/data-stream-program/dm_mysql-data2es_py.py ;执行命令
stdout_logfile_maxbytes = 20MB ;日志大小
stdout_logfile_backups = 10 ;日志备份数量
stdout_logfile = /opt/logs/dm_mysql-data2es_py.log ;日志目录

因为采用apt-get方式安装所以可以使用systemctl管理spuervisor服务

systemctl status supervisor.service #查看状态
 systemctl start supervisor.service #启动
 systemctl stop supervisor.service #停止
 systemctl restart supervisor.service #重启

至于supervisor管理的进程,可以使用supervisorctl来管理
管理方式跟systemctl很类似

systemctl status    # 查看程序状态
systemctl stop update_ip   # 关闭 update_ip 程序
systemctl start update_ip  # 启动 update_ip 程序
systemctl restart update_ip    # 重启 update_ip 程序
systemctl reread    # 读取有更新(增加)的配置文件,不会启动新添加的程序
systemctl update    # 重启配置文件修改过的程序

pip安装方式参考这里https://www.jianshu.com/p/bf2b3f4dec73

猜你喜欢

转载自blog.csdn.net/shooke/article/details/84308487