supervisor是python开发的linux进程管理工具,可以很方便的控制进程。
其主要的组件:
- supervisord
是服务端程序,主要功能是启动supervisord服务,启动supervisor管理的子进程,对进程进行管理的服务。
- supervisorctl
是客户端程序,主要功能就是管理(启动/关闭/重启/状态等)子进程,提供shell环境进行处理。
- web server
Web Server主要可以在界面上管理进程,Web Server其实是通过XML_RPC来实现的,可以向supervisor请求数据,也可以控制supervisor及子进程。配置在[inet_http_server]块里面
- XML_RPC
远程调用的,上面的supervisorctl和Web Server就它实现
安装
easy_install supervisor
测试安装是否成功
echo_supervisord_conf
会将一个”sample” Supervisor configuration输出到控制台。
生成配置文件
echo_supervisord_conf > /etc/supervisord.conf
Supervisor配置文件通常命名为supervisord.conf。 它由supervisord和supervisorctl使用。 如果任一应用程序在没有-c选项的情况下启动(用于显式指示配置文件名的选项),应用程序将按照指定的顺序在以下位置查找名为supervisord.conf的文件。 它将使用它找到的第一个文件。
- $CWD/supervisord.conf
- $CWD/etc/supervisord.conf
- /etc/supervisord.conf
- /etc/supervisor/supervisord.conf (since Supervisor 3.3.0)
- ../etc/supervisord.conf (Relative to the executable)
- ../supervisord.conf (Relative to the executable)
$CWD表示运行supervisord程序的目录。
配置进程
创建目录:
mkdir /etc/supervisor.d
编辑/etc/supervisord.conf
将最后的include
注释打开。
[include]
files=/etc/supervisor.d//*.conf
在/etc/supervisor.d/
目录下创建进程配置hexo.conf
[program:hexo]
command=hexo server
directory=/opt/hexo
user=root
autostart=true
autorestart=true
stopasgroup=true
startsecs=10
startretries=999
stdout_logfile=/var/hexo/hexo.log
stdout_logfile_maxbytes=20MB
stdout_logfile_backups=10
stderr_logfile=/var/hexo/hexo_err.log
stderr_logfile_maxbytes=10MB
stderr_logfile_backups=10
启动
- 启动supervisord
supervisord -c /etc/supervisord.conf
- 启动supervisorctl
supervisorctl -c /etc/supervisord.conf
使用
supervisord启动成功后,在终端输入supervisorctl
管理配置的进程。
常用命令
status --查看进程状态
start [进程名] --启动进程
stop [进程名] --关闭进程
restart [进程名] --重启进程
转载声明:商业转载请联系作者获得授权,非商业转载请注明出处 © wekri
原文地址:http://www.wekri.com/2018/05/19/supervisor/