Supervisor 是一个进程监控程序

适用场景:

现在有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断。

当进程中断时希望能自动重新启动它,此时就需要使用到了 Supervisor

1. 安装

pip install supervisor

就这样就完成了安装,在 /root/nowamagic_venv/lib/python2.7/site-packages/ 文件夹下发现了安装目录,这里是在 virtualenv 下安装的。

 

2. 配置

可以用以下命令生成配置文件:

echo_supervisord_conf > etc/supervisord.conf

配置文件生成之后,在最末尾加上这几行东西:

[program:hello]
command=python /root/nmapp2_venv/test.py --port=8888
directory=/root/nmapp2_venv/
autorestart=true
redirect_stderr=true

OK,完成配置。

 

3. 启动 supervisor

supervisord

如果报错,请检查报错信息,比如:

Error: No config file found at default paths (
/root/nmapp2_venv/etc/supervisord.conf, 
/root/nmapp2_venv/supervisord.conf, 
supervisord.conf, 
etc/supervisord.conf, 
/etc/supervisord.conf); use the -c option to specify a config file at a different path
For help, use /root/nmapp2_venv/bin/supervisord -h

在上面的默认目录中,丢一个 supervisord.conf 即可。

如果报 http://localhost:9001 refused connection 错误,那是因为 supervisord 没有启动的原因。只要放好 supervisord.conf 文件,即可解决问题。

supervisorctl start all     // 开启全部服务

如果修改了配置文件,supervisorctl reload 重启。修改了 Supervisor 的配置,也可以用 supervisorctl reread 来重新载入,或用 supervisorctl reload 来载入新配置并重启所有子进程。直接运行 supervisorctl 的话,可以进入命令行模式操作。