最近項目中使用的數據接口服務如TSDB,kafka,訂閱服務等在掛掉幾次後,爲了防止影響主系統的使用,我們要進行守護進程,在進程掛掉後自動拉起。
2.上面那個有問題的時候,在linux有python和pip的時候根據下面的教程安裝
在完成安裝後,接下來就是修改配置文件了。
我們根據命令:echo_supervisord_conf > /etc/supervisord.conf 生成了conf文件,這個是主文件。
在修改配置文件之前先創建一個文件夾,執行命令:mkdir supervisor
將conf文件放到文件夾中,看一下我的文件結構
接下來配置conf 執行命令:vi /etc/supervisord.conf
拉到最底下看到
這個代表執行supervisor的時候會執行這個文件下所有的ini文件
我們將需要守護進程的腳本執行命令在這些ini文件中進行配置
下面爲ini文件裏的詳細信息(可能模糊,全圖查看就好)
ini配置:
[program:kafkaRedis]
process_name=%(program_name)s_%(process_num)02d
command=執行命令
autostart=true
autorestart=true
user=root
numprocs=1
redirect_stderr=true
stdout_logfile=/etc/supervisor/logs/kafkaRedis.log
我有三個需要守護的進程,所以我建了三個ini文件,只有上圖的三項不一樣,其他都不需更改
配置完後進行啓動,直接讀取conf文件啓動
supervisord -c /etc/supervisord.conf
啓動完可以通過supervisorctl查看檢測的進程
通過ps -ef|grep 端口號命令 查看進程是否在線
再通過kill -9 端口號命令殺死進程再看程序會不會自動拉起
根據上圖看到,在我kill掉進程之後supervisor自動拉起了守護的進程