Python看門狗實際上是一種用于監測進程是否啟動與正常運行的工具。Python看門狗可以避免某些奇怪問題的出現,例如由于某些進程崩潰而導致整個系統崩潰。
import os import time def run(): while True: isRunning = False for pid in os.listdir('/proc'): if pid.isdigit(): cmdlinePath = '/proc/%s/cmdline' % pid with open(cmdlinePath, 'r') as f: cmd_line = f.readline() if 'your-process-cmdline' in cmd_line: print('your process is running') isRunning = True break if not isRunning: print('your process is not running') # do something here to restart your process time.sleep(10) run()
上方是一個簡單的Python看門狗腳本。在這個腳本中,我們使用了os模塊的listdir方法來訪問/proc目錄下的進程文件夾,以便獲取每個正在運行的進程的信息。使用listdir方法的原因是,/proc是一個虛擬的文件系統,它提供了Linux系統的內核狀態信息。
在if 'your-process-cmdline' in cmd_line這個條件語句中,我們檢測進程名是否包含'your-process-cmdline'這個字符串,如果返回True,則表示進程正在運行。如果進程未運行,則執行類似于重啟該進程的其他操作。
最后,我們使用了time模塊的sleep方法來讓這一循環休眠,以便我們能夠定期重復這個進程。