gpt4 book ai didi

python - 如果 Python 程序被杀死,自动重启它

转载 作者:太空狗 更新时间:2023-10-30 02:39:34 25 4
gpt4 key购买 nike

我运行一个 Python Discord 机器人。我导入了一些模块并有一些事件。时不时地,脚本似乎由于某种未知原因而被杀死。也许是因为错误/异常或某些连接问题?我不是 Python 专家,但我设法让我的机器人工作得很好,我只是不完全理解它是如何在引擎盖下工作的(因为程序除了等待事件之外什么都不做)。无论哪种方式,我都希望它在停止后自动重新启动。

我使用的是 Windows 10,如果我不想要该窗口,只需双击它或通过 pythonw.exe 启动我的程序。验证我的程序是否仍在运行的最佳方法是什么(它不必是即时的,验证可以每 X 分钟完成一次)?我想过使用批处理文件或其他 Python 脚本,但我不知道该怎么做。

感谢您的帮助。

最佳答案

您可以编写另一个 python 代码 (B) 来使用 subprocess< 中的 Popen 调用您原来的 python 代码 (A)/。在 python 代码 (B) 中,要求程序等待您的 python 代码 (A)。如果'A'错误代码 退出,则从B召回 它。

我提供了一个 python_code_B.py 的例子

import subprocess

filename = 'my_python_code_A.py'
while True:
"""However, you should be careful with the '.wait()'"""
p = subprocess.Popen('python '+filename, shell=True).wait()

"""#if your there is an error from running 'my_python_code_A.py',
the while loop will be repeated,
otherwise the program will break from the loop"""
if p != 0:
continue
else:
break

这通常适用于 Unix/Windows 系统。使用最新的代码更新在 Win7/10 上测试。

此外,请从“真实终端”运行 python_code_B.py,这意味着从命令提示符或终端运行,而不是在空闲状态下运行。

关于python - 如果 Python 程序被杀死,自动重启它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44112399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com