我编写了一个运行无限循环的python脚本。该脚本在屏幕会话中启动。然而,有时候,经过几个小时甚至几天后,它会因为我现在没有原因而崩溃,因为屏幕会话会在发生时关闭。
我还创建了一个"看门狗"脚本包含以下代码,该代码也在屏幕会话中运行:
from subprocess import check_output
import os
import time
import random
time.sleep(20)
def screen_present(name):
try:
var = check_output(["screen -ls; true"],shell=True)
if "."+name+"\t(" in var:
print name+" is running"
else:
print name+" is not running"
print "RESTARTING"
os.system("screen -dmS player python /var/www/updater.py > /dev/null 2> /dev/null & echo $")
except:
return true
while True:
screen_present("updater")
time.sleep(random.uniform(6, 10))
因此,当我在离开它们运行一晚左右后检查我的脚本时,我有时会发现,
你们会怎么做才能找到错误并确保稳定运行?
答案 0 :(得分:1)
当您启动python进程时,将其输出到文件。像这样:
python myfile.py >> log.txt 2>&1
即使文件死亡,您也可以访问该文件。