Linux自启进程管理工具,进程管理工具Supervisor的安装及使用
需求:有一個(gè)進(jìn)程需要每時(shí)每刻不斷的跑,但是這個(gè)進(jìn)程又有可能由于各種原因有可能中斷。當(dāng)進(jìn)程中斷的時(shí)候我需要他能自動重啟,保證服務(wù)一直在跑著?;谡麄€(gè)需求,一開始想的是起一個(gè)腳本,監(jiān)聽該服務(wù)的端口,一旦發(fā)現(xiàn)端口占用被解除,立即重新執(zhí)行命令。但是后來發(fā)現(xiàn)linux已經(jīng)有了類似的東西,即今日的主角Supervisor:
sudo apt-get install supervisor
可以進(jìn)入paython測試是否能import supervisor 來確定是否已經(jīng)裝好。
配置
安裝好supervisor后就可以編寫配置文件了。配置文件放在/etc/supervisor/conf.d/目錄下,最好一個(gè)進(jìn)程對應(yīng)一個(gè).conf文件。
配置文件參數(shù)說明:
[program: test]
command=xxxxxxxx ;如果有多條命令,可以寫入shell腳本再在這里調(diào)用
directory=xxxxx ;執(zhí)行命令時(shí)切換到的目錄
user=xxxx ;執(zhí)行命令所用的linux用戶身份
autorestart=true;是否自動重啟
autostart=true;啟動supervisor時(shí)是否自行啟動該程序
redirect_stderr=true;如果為true則將stderr發(fā)送到stdout相應(yīng)的log文件中去
stdout_logfile=/path/to/logfile ;制定stdout的輸出文件
stdout_logfile_maxbytes=10MB ;限定logfile的大小, 默認(rèn)為50M
stdout_logfile_backups=10;保存logfile的最大數(shù)目,如果操作這個(gè)數(shù)目則對最早的logfile進(jìn)行覆蓋,默認(rèn)為10
environment=A="1", B="2" ;設(shè)置環(huán)境變量,這里可以保存運(yùn)行程序需要的參數(shù)
我要的功能非常簡單,僅做了如下配置
[program: server]
command=Python /home/zxchen/server.py ;
autorestart=true;
autostart=true ;
啟動服務(wù)
sudo supervisorctl reread #成功提示:server: available
sudo supervisorctl reload #成功提示:Restarted supervisord
sudo supervisorctl start app #如果服務(wù)沒有啟動時(shí)可以試試這個(gè)指令
檢驗(yàn)
lsof -i:端口號 #查看該端口狀態(tài)
kill-9 PID #kill掉這個(gè)進(jìn)程
再次查看端口狀態(tài),發(fā)現(xiàn)端口上服務(wù)的PID已改變,即成功。
總結(jié)
以上是生活随笔為你收集整理的Linux自启进程管理工具,进程管理工具Supervisor的安装及使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何linux查看硬盘文件,如何使用li
- 下一篇: linux键盘设置的文件在哪个文件夹,「