繁体   English   中英

如果停止,如何在远程服务器上重新启动python脚本?

[英]How do I restart a python script on a remote server if it stops?

我有一个在远程服务器上运行的python脚本,该服务器开始使用nohup python myscript.py & 如果脚本停止,我想重新启动它。 我检查了这个答案,但不确定是否启动脚本。 我相信它会检查脚本是否停止并在脚本停止时启动它。 另外,它需要脚本的pid ,每次重新启动脚本时, pid都会不同。

我也检查了这个答案,但是我不确定nohup命令是否可以使用until.. do循环。 难道不是每隔1秒就重新启动一次脚本吗? 谁能指定我该如何编写脚本以在脚本停止的情况下重新启动该脚本?

无需编写自己的脚本,您可以使用非常成熟,经过战斗测试, 监督的守护程序为您守护任何脚本。

除了自动重启外,它还提供了许多其他功能,包括即开即用的注销功能,它非常广泛地用于守护python脚本

如果您想要自己的解决方案,只需使用bash脚本即可:

#!/bin/bash
while :
do
    python myscript.py
    echo "crashed" >> log
end

使它可执行(chmod + x),然后像nohup ./thisscript.sh &一样运行它。

或者让其他软件为您完成此操作(建议使用dm03514)。

如果要从自身内部重新启动它,则可以尝试:

import os, sys

os.execv(__file__, sys.argv) #__file__ for current file or one of your choice

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM