Supervisor是一個客戶端/服務器系統,允許其用戶監視和控制類似UNIX的操作系統上的許多進程。
安裝
1.supervisord是python的一個庫可以直接用過pip來進行安裝
pip install supervisor
2.如果沒有pip可以在PyPi[https://pypi.org/project/supervisor/]上下載supervisord的安裝包來進行手動安裝
python setup.py install
配置
1.生成配置文件
在終端中輸入echo_supervisord_conf
可以打印出配置文件的模板。
2.新建一個supervisord配置文件
echo_supervisord_conf > /etc/supervisord.conf
啓動
1.初始化啓動supervisord
supervisord -c /etc/supervisord.conf
2.supervisord常用命令
supervisorctl start #啓動
supervisorctl stop #停止
supervisorctl status #查看狀態
supervisorctl reload #重新加載守護進程配置文件
添加一個守護程序
1.創建守護文件配置
mkdir /etc/supervisord/conf.d
vim test.conf
在配置文件中添加:
[program:public_monitor]
process_name=monitor
command=/usr/bin/python3 /home/kafka/monitor.py
autostart=true
startsecs=10 ;啓動10秒沒有異常退出則表示正常運行
autorestart=true ;程序退出後自動重啓
startretries=3 ;啓動失敗重試次數,默認是3
user=root
redirect_stderr=true
stderr_logfile=/var/log/supervisor/monitor/progress.err.log
stdout_logfile=/var/log/supervisor/monitor/progress.out.log
stopsignal=INT
重載配置文件supervisoctl reload
,然後查看supervisord的狀態supervisoctl status
可以看到現在有一個 守護程序正在運行
將supervisord設置開機自啓
編輯服務配置文件supervisord.service:
#supervisord.service
[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
將文件拷貝到/usr/lib/systemd/system/
cp supervisord.service /usr/lib/systemd/system/
啓動服務
systemctl enable supervisord
驗證一下是否爲開機啓動
systemctl is-enabled supervisord