Supervisor进程监视管理

supervisor是用Python开发的一套通用的进程管理程序,可以将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时可以自动重启。

安装Supervisor

# yum search setuptools
....
python-setuptools.noarch : Easily build and distribute Python packages
#yum install -y python-setuptools.noarch
#easy_install supervisor

创建主配置文件

# mkdir -m 755 -p /etc/supervisor          \\创建supervisor配置文件目录
# echo_supervisord_conf >/etc/supervisor/supervisord.conf    \\创建主配置文件
# cd /etc/supervisor/
# mkdir -m 755 conf.d             \\创建项目配置文件目录

创建项目配置文件(运行3个脚本)

# vim conf.d/test.ini
[program:tjapp_sendmessage]
command=/bin/bash /data/shell/sendmessage.sh
numprocs=1
autostart=true
autorestart=true

[program:bbscollection]
command=/bin/bash /data/shell/bbscollection.sh
numprocs=1
autostart=true
autorestart=true

[program:test_sbbscollection]
command=/bin/bash /data/shell/test_sbbscollection.sh
numprocs=1
autostart=true
autorestart=true

在主配置文件中引入test.ini

#cat supervisord.conf
...
[include]
files = ./conf.d/*.ini

启动supervisor

# supervisord -c /etc/supervisor/supervisord.conf

查看supervisor运行的脚本

# supervisorctl
bbscollection                    RUNNING   pid 10090, uptime 4 days, 17:20:10
test_sbbscollection              RUNNING   pid 10088, uptime 4 days, 17:20:10
tjapp_sendmessage                RUNNING   pid 10089, uptime 4 days, 17:20:10

停止bbscollection脚本

# supervisorctl stop bbscollection
bbscollection: stopped

# supervisorctl
bbscollection                    STOPPED   Apr 06 10:23 AM
test_sbbscollection              RUNNING   pid 10088, uptime 4 days, 17:23:13
tjapp_sendmessage                RUNNING   pid 10089, uptime 4 days, 17:23:13

# supervisor> start bbscollection  \\启动

# supervisor> status
bbscollection                    RUNNING   pid 7310, uptime 0:00:24
test_sbbscollection              RUNNING   pid 10088, uptime 4 days, 17:23:54
tjapp_sendmessage                RUNNING   pid 10089, uptime 4 days, 17:23:54

systemctl管理

vim /usr/lib/systemd/system/supervisord.service
# supervisord service for sysstemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/bin/supervisord
ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
ExecReload=/usr/bin/supervisorctl $OPTIONS reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
#systemctl enable supervisord.service
标签:Supervisor 发布于:2019-11-04 02:26:42