Supervisord

让supervisord来管理进程的运行,就能在进程崩溃后自动重新运行

安装

最好用apt-get安装,用pip的话还要设置自动启动之类的

sudo apt-get install supervisor 

配置

安装好默认加载的配置文件在/etc/supervisor/supervisord.conf中,而这个配置的最后一行写有

[include]
files = /etc/supervisor/conf.d/*.conf

所以只要我们把每个进程的配置文件放在/etc/supervisor/conf.d/目录中,supervisord就能自动加载这些配置了。

配置文件示例:

[program:项目名称]
command=要运行的命令 directroy=/home/lzz/temp/super/  autostart=true;自动运行
autorestart=true;崩溃自动重启

;最基础的只需要上面三条就行了

directory=;设置这个参数的话,启动进程之前,会先切换到这个目录
startretries=3;启动失败后,最多尝试重启的次数
user=;可以设置一个非root用户,当我们以root用户启动supervisord之后。设这个非root用户也可以对supervisord进行管理
startsecs=1 ;自动重启间隔
stdout_logfile=/home/lzz/temp/super/%(program_name)s.log 
stderr_logfile=/home/lzz/temp/super/%(program_name)s.log

使用

supervisordctl是管理supervisord的客户端,可以通过它对进程进行操作

sudo supervisordctl start 项目名称
sudo supervisordctl stop 项目名称

查看进程状态

sudo supervisordctl status

启动/关闭supervisord

sudo service supervisor stop 停止supervisor服务
sudo service supervisor start 启动supervisor服务