在 Screen 内的 Python 脚本 运行 中查找错误

Find error in Python script running inside Screen

我写了一个 python 脚本,它使用循环无限运行。该脚本在屏幕会话中启动。但是有时,在几个小时甚至几天后,它会因为我现在不知道的原因而崩溃,因为屏幕会话会在发生这种情况时关闭。

我还使用以下代码创建了一个 "watchdog" 脚本,该脚本也在屏幕会话中运行:

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))

因此,当我离开脚本 运行 一个晚上左右后检查脚本时,我有时会发现,

你们会怎么做才能找到错误并保证稳定运行?

启动 python 进程时,将其输出到文件。像这样:

python myfile.py >> log.txt 2>&1

您将能够访问该文件,即使它已死。