【问题标题】:Restart python script from other script从其他脚本重新启动 python 脚本
【发布时间】:2023-03-13 07:00:01
【问题描述】:

我已经在这个网站上搜索了几个解决方案,但不幸的是,提供的解决方案不适合我。

假设我有一个名为“DataGen.py”的 Python 脚本停止运行(绿色箭头可单击),因为某些后台程序正在崩溃。不幸的是,没有抛出异常,这就是我需要解决方法的原因:

我正在搜索的是另一个名为“RestartScript.py”的 Python 脚本,它在“DataGen.py”停止运行 60 秒后重新启动。

我尝试了类似的方法:

from os import system
from time import sleep

while True:
    system('DataGen.py')
    sleep(300)

【问题讨论】:

标签: python restart


【解决方案1】:

system 函数执行您用作输入的命令。请参阅link。因此,这将是您运行它以达到您想要的结果的方式:

system('python DataGen.py')

此外,在sleep 函数中用作输入的任何值都应该是秒。 使用此逻辑,您的代码每 300 秒重新运行一次。

完整解决方案见下文:

from os import system
from time import sleep

while True:
    system('python DataGen.py')
    sleep(60)

【讨论】:

  • 这是一个好的开始,但是如果你想从一个主进程监控DataGen.pysubprocess.call 或类似的可能是更好的选择。此外,没有restart if crashed 逻辑,我会发现它更有趣。我认为一个令人满意的解决方案是将DataGen.py 的pid 传递给monitor 函数,它会定期检查进程是否仍在运行,如果它崩溃则重新启动它。也许os.system('ps') 然后查找此 pid 将是一个很好的开始。
  • @Rightleg 这对我的目的也更好。我认为问题下发布的链接“DocDriven”是您所指的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-13
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多