Centos7 中使用Supervisor守护进程

By mhcyong at 2018-12-17 16:12 • 110次点击
mhcyong

一、安装

yum install python-setuptools
easy_install supervisor   


二、测试是否安装成功
echo_supervisord_conf


三、创建配置文件
echo_supervisord_conf > /etc/supervisord.conf


vim 打开配置文件 shift+g 跳转到文件最后一行。

可以看到如下配置

;[include]
;files = relative/directory/*.ini

去掉分号注释,并指定好路径,supervisor将会加载对应路径下的*.ini配置文件。
四、编辑配置文件
随后我们在supervosprd.d中创建一个delploy.ini文件并编辑如下
[program:goyoubbs]
command = /www/wwwroot/xjpi.net/goyoubbs -config=/www/wwwroot/xjpi.net/config/config.yaml
process_name = goyoubbs
stopwaitsecs = 10
directory = /www/wwwroot/xjpi.net
redirect_stderr=true
autostart=true
autorestart=true
stdout_logfile=/www/wwwlogs/xjpi.net.log
stderr_logfile=/www/wwwlogs/xjpi.net.error.log

五、验证是否生效
执行 supervisord -c /etc/supervisord.conf 启动即可。

六、配置supervisord开机启动
a.在指定目录下创建文件supervisord.service

vim /usr/lib/systemd/system/supervisord.service

b.输入以下内容:
[Unit]
Description=Supervisor daemon 

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s 

[Install]
WantedBy=multi-user.target

保存并退出

执行以下命令:

systemctl enable supervisord

验证是否为开机启动:
systemctl is-enabled supervisord

七、子进程的管理
1) 查看所有子进程的状态:

#supervisorctl status
blog              RUNNING    pid 2395, uptime 0:08:41
goyoubbs      RUNNING    pid 2396, uptime 0:08:41

2)关闭、开启指定的子进程:
# supervisorctl stop goyoubbs
goyoubbs: stopped

# supervisorctl start goyoubbs
goyoubbs: started

3)关闭、开启所有的子进程:
# supervisorctl stop all
blog: stopped
goyoubbs: stopped
# supervisorctl start all
blog: started
goyoubbs: started

4):其他参数:supervisor开启后子进程自动开启(autostart=true)和子进程退出后自动启动(autorestart=ture)

八、web管理界面
需要在supervisor的配置文件里添加[inet_http_server]选项组:之后可以通过http://ip_address:9001来访问控制子线程的管理。

[inet_http_server]
port=ip_address:9001
username=user
password=123

效果如下:

centos, supervisor, 进程


目前尚无回复
0 条评论
您好, 请先登录! | 登录