【Python】使用Supervisor來管理Python的程序
1.問題描述
需要一個python的服務程式在後臺一直執行,不能讓該程序被殺死,即使被殺死也要能及時自動重啟。如:有一個python的程式:test.py ,通過命令:python test.py來執行程式,但是它會受命令列的中斷而中斷。所以我們需要一個方法來保證該程式一直在後臺執行。
2.解決方法
以前經常用命令:nohup python test.py & 來保證其在後臺執行不中斷,但是這也不能保證一直執行。
下面介紹用supervisor來管理python的程序,保證其在後臺一直執行不中斷。
(1)安裝supervisor
在命令列輸入:sudo apt-get install supervisor 來安裝supervisor
測試安裝是否成功,在命令列輸入:supervis 再按tab鍵,看其是否能補全命令:supervisor,如果能則表示安裝成功
(2)配置supervisord.conf檔案
找到supervisord.conf配置檔案,一般在/etc/ 目錄下,或者在/etc/supervisor/ 目錄下,用root許可權開啟該檔案:sudo vim supervisord.conf,否則不能進行修改。
在檔案末尾新增如下幾行:
[program:myProgram]
command=python /home/myname/test.py
autostart=true
autorestart=ture
stdout_logfile=/home/myname/test.log
註釋:第一行的myProgram自己取個名字,表示你的專案就行
第二行的python /home/myname/test.py表示你執行程式的命令
第三行表示自動啟動,如果值為false則表示不自動啟動
第四行表示自動重啟,如果值為false則表示不自動重啟
最後一樣表示程式打印出的資訊都記錄在該test.log檔案內,是log檔案
(3)使用supervisor
配置完之後,命令列輸入:sudo supervisord 就可以了。
你可以kill掉你程式的程序,然後再看,發現它自動重啟了,不用擔心會被kill掉。
好了,希望對大家有幫助。
-----------------------------------------------------------------------------------------------------------------------------------------