【发布时间】:2017-10-22 02:00:43
【问题描述】:
我运行一个 Python Discord 机器人。我导入了一些模块并有一些事件。有时,脚本似乎因某种未知原因而被杀死。也许是因为错误/异常或某些连接问题?我不是 Python 专家,但我设法让我的机器人工作得很好,我只是不完全理解它是如何工作的(因为程序除了等待事件之外什么都不做)。无论哪种方式,我都希望它在停止后自动重新启动。
我使用 Windows 10,如果我不想要该窗口,只需双击它或通过 pythonw.exe 启动我的程序。验证我的程序是否仍在运行的最佳方法是什么(它不必是即时的,可以每 X 分钟进行一次验证)?我想过使用批处理文件或其他 Python 脚本,但我不知道该怎么做。
感谢您的帮助。
【问题讨论】:
-
也许您可以编写一个脚本,每分钟检查您的脚本是否正在运行,如果没有则重新启动它?只是一个快速的想法。
-
@creyD 是的。这样做的最佳方法是什么?我应该使用 Python、批处理还是其他方式?如果您认为 Python 是最好的方法,那至少会为我指明一个进一步过滤搜索的方向(因为我没有对 Python 中的 OS 库进行太多实验)。
-
我猜@Gahan 也回答了你的问题。我会为该任务编写一个简单的批处理脚本。您甚至可以使用 windows 启动此脚本,因此即使您的系统出现故障,它也会重新启动。
-
atexit不是最简单的选择吗? -
@WhatsThePoint 我想这取决于脚本是如何结束的,我现在并不完全知道。我认为这可能是我遇到互联网连接问题时,可能来自 discord.py API,但我非常不确定,因为我对 Python 的了解非常有限。如果脚本完全被杀死(例如,我打开任务管理器并杀死它),我认为 atexit 不会起作用。
标签: python batch-file cron discord discord.py