1. 程式人生 > >【Python】使用Supervisor來管理Python的程序

【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掉。

好了,希望對大家有幫助。

-----------------------------------------------------------------------------------------------------------------------------------------