- 系統(tǒng)平臺
cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
- Python版本
python -V
Python 2.7.5
# python版本需大于2.6
- 安裝 Supervisor
yum install -y supervisor
systemctl start supervisord
systemctl enable supervisord
- 編寫需要被Supervisor管理的進程
vim /etc/supervisord.d/fs-server.conf
[program:fs-server] #程序唯一名稱
command=python3 /mnt/fs-server/main.py #運行程序的命令
directory=/mnt/fs-server/ #程序路徑
user=root #用哪個用戶啟動進程,默認是root
autorestart=true #程序退出后自動重啟,可選值:[unexpected,true,false],默認為unexpected,表示進程意外殺死后才重啟蹲盘;意思為如果不是supervisord來關(guān)閉的該進程則認為不正當關(guān)閉宏胯,supervisord會再次把該進程給啟動起來琐鲁,只能使用該supervisorctl來進行關(guān)閉、啟動垒玲、重啟操作
redirect_stderr=true #把stderr重定向到stdout標準輸出损谦,默認false
stdout_logfile=/mnt/fs-server.log #標準日志輸出位置岖免,如果輸出位置不存在則會啟動失敗
loglevel=info #日志級別
- 編寫需要被Supervisor管理的進程
vim /etc/supervisord.d/kube-server.conf
[program:kube-server] #程序唯一名稱
command=python3 /mnt/kube-server/main.py #運行程序的命令
directory=/mnt/kube-server/ #程序路徑
user=root #用哪個用戶啟動進程岳颇,默認是root
autorestart=true #程序退出后自動重啟,可選值:[unexpected,true,false],默認為unexpected颅湘,表示進程意外殺死后才重啟话侧;意思為如果不是supervisord來關(guān)閉的該進程則認為不正當關(guān)閉,supervisord會再次把該進程給啟動起來闯参,只能使用該supervisorctl來進行關(guān)閉掂摔、啟動、重啟操作
redirect_stderr=true #把stderr重定向到stdout標準輸出赢赊,默認false
stdout_logfile=/mnt/kube-server.log #標準日志輸出位置,如果輸出位置不存在則會啟動失敗
loglevel=info #日志級別
- 編寫需要被Supervisor管理的進程
cat << EOF > /etc/supervisord.d/redis.conf
[program:redis]
command=/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis6001.conf
directory=/usr/local/redis
user=root
autorestart=true
redirect_stderr=true
stdout_logfile=/usr/local/redis/logs/redis6001.log
loglevel=info
EOF
注意:/etc/supervisord.d/目錄下的所有.conf
都會被作為被Supervisor管理的進程级历。(也有可能是.ini
释移,可以通過cat /etc/supervisord.conf | grep supervisord.d
或者cat /var/log/supervisor/supervisord.log
查看)
- 程序管理
supervisorctl status kube-server #kube-server狀態(tài)
supervisorctl stop kube-server #停止kube-server
supervisorctl start kube-server #啟動kube-server
supervisorctl restart kube-server #重啟kube-server
supervisorctl reoload kube-server #重載kube-server
- web訪問
sed -i '10i[inet_http_server]' /etc/supervisord.conf
sed -i '11iport=*:9001' /etc/supervisord.conf
sed -i '12iusername=user' /etc/supervisord.conf
sed -i '13ipassword=123' /etc/supervisord.conf
systemctl restart supervisord
curl -u user 192.168.0.190:9001
參考文檔:
https://zhuanlan.zhihu.com/p/147305277
https://www.douban.com/note/657000902/