天天看點

監視Python程式自動退出,并重新啟動程式

有時,我們會遇到Python程式莫名其妙地退出,也沒有任何異常提示,但我們希望程式能夠一直運作,即便異常終止,也能自動啟動,這時我們可以寫一個監視程式,來達到目的:

# -*- coding: utf-8 -*-

#!/usr/bin/python

import os

import subprocess

res = subprocess.Popen('ps -ef | grep slackbot',stdout=subprocess.PIPE,shell=True)

attn=res.stdout.readlines()

counts=len(attn)  #擷取ASRS下的程序個數

#print(counts)

if counts<=2:    #當程序不夠正常運作的個數時,說明某隻程式退出了

#    os.system('python /home/pi/ASRS/ASRS.py')     ##啟動程式

   os.system('source /etc/profile && nohup python -u /home/www/XXX/xxx.py > /home/www/python/nohup.out 2>&1 &') ##啟動程式   

##    os.system('reboot')    #重新開機系統

監視Python程式自動退出,并重新啟動程式

ps:切記在nohup python····· 前加上source /etc/profile &&  如圖所示寫即可,不然不會重新開機的(不服你試試)