进程管理工具Supervisor的安装及使用

需求:有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断。当进程中断的时候我需要他能自动重启,保证服务一直在跑着。基于整个需求,一开始想的是起一个脚本,监听该服务的端口,一旦发现端口占用被解除,立即重新执行命令。但是后来发现linux已经有了类似的东西,即今日的主角Supervisor:

  安装(Ubuntu

sudo apt-get install supervisor

  可以进入paython测试是否能import supervisor 来确定是否已经装好。

  配置

  安装好supervisor后就可以编写配置文件了。配置文件放在/etc/supervisor/conf.d/目录下,最好一个进程对应一个.conf文件。
  配置文件参数说明:

[program: test] command=xxxxxxxx ;如果有多条命令,可以写入shell脚本再在这里调用 directory=xxxxx ;执行命令时切换到的目录 user=xxxx ;执行命令所用的linux用户身份 autorestart=true ;是否自动重启 autostart=true ;启动supervisor时是否自行启动该程序 redirect_stderr=true ;如果为true则将stderr发送到stdout相应的log文件中去 stdout_logfile=/path/to/logfile ;制定stdout的输出文件 stdout_logfile_maxbytes=10MB ;限定logfile的大小, 默认为50M stdout_logfile_backups=10 ;保存logfile的最大数目,如果操作这个数目则对最早的logfile进行覆盖,默认为10 environment=A="1", B="2" ;设置环境变量,这里可以保存运行程序需要的参数

  我要的功能非常简单,仅做了如下配置

[program: server] command=Python /home/zxchen/server.py ; autorestart=true ; autostart=true ;

  启动服务

sudo supervisorctl reread #成功提示:server: available sudo supervisorctl reload #成功提示:Restarted supervisord sudo supervisorctl start app #如果服务没有启动时可以试试这个指令

  检验

lsof -i:端口号 #查看该端口状态 kill -9 PID #kill掉这个进程

  再次查看端口状态,发现端口上服务的PID已改变,即成功。

CentOS7下Supervisor安装与配置(Linux/Unix进程管理工具) 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/14019.html