有時,我們會遇到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') #重新開機系統
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL6tmeORTVE5UMNpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL0UDO5ATOxATMxITNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
ps:切記在nohup python····· 前加上source /etc/profile && 如圖所示寫即可,不然不會重新開機的(不服你試試)