supervisor是用Python开发的一套通用的进程管理程序,可以将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时可以自动重启。
# 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 \\创建项目配置文件目录
# 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
#cat supervisord.conf
...
[include]
files = ./conf.d/*.ini
# supervisord -c /etc/supervisor/supervisord.conf
# 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
# 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
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