我有一个非常错误的脚本,每隔几个小时由于错误而停止。我不用Python编写代码,但我知道基础知识,所以我想知道如何制作一个脚本来检查另一个脚本是否有错误,如果真的只重新运行它? 很抱歉没有提供任何示例,但我认为你明白了,因为我不擅长Python,这比尝试理解脚本和编辑它更容易。非常感谢任何帮助。
答案 0 :(得分:2)
到目前为止,最简单的方法是等待它退出并在崩溃时始终重新启动它;程序运行时,以下bash
循环将不执行任何操作,并在退出后立即重新启动:
while true
do
python buggy_script.py arguments
echo oops, restarting...
done
就是这样。它将永远运行,直到你杀死运行它的bash脚本。
PS。当然这假设您使用的是OS X或Linux;如果您使用的是Windows,请使用等效的批处理或PowerShell脚本。
答案 1 :(得分:0)
您可以为脚本创建守护程序。
基本上将主要功能保留在一个永远运行的循环中。
import logging
import time
if __name__ == '__main__':
while True:
//log errors
logging.basicConfig(filename='log_file.log', level=logging.DEBUG)
// use try except to handle exceptions
try:
// your code statements and function calls
except Exception as e:
// log the error for debugging
logging.error(str(e))
// sleep the program if you want it to for desired amount of time.
time.sleep(delay)
我设置的日志记录级别是debug。您可以将其设置为您自己选择的任何其他选项。
参考文献:
记录文档 - https://docs.python.org/3/library/logging.html
处理例外 - https://docs.python.org/3/tutorial/errors.html#handling-exceptions