我在GCE虚拟机上运行带有nohup的python脚本。断开SSH连接后,我需要能够无限期地运行脚本。这是我输入的命令:
nohup python myscript.py &
Python脚本会轮询Pub / Sub以查找Google App Engine的cron服务发送的消息,并在收到一个脚本时运行另一个python脚本。 https://github.com/GoogleCloudPlatform/reliable-task-scheduling-compute-engine-sample
在将我的脚本放在后台后,Nohup已经连续工作了几天。我可以在nohup.out中看到它收到了Pub / Sub消息,而我的其他脚本则产生了预期的结果。
我面临的问题是,在没有SSH连接的情况下运行几天后,现在nohup似乎停止在后台运行。查看nohup.out,它似乎在凌晨2点停止了输出,似乎是随机的。我已经检查了App Engine日志,它已成功将cron日程安排转发给发布/订阅消息。
今天早上我连接到VM,可以看到nohup进程的PID不再活动。
为什么nohup不会在后台停止运行?这可能是由于Google Compute Engine的干扰吗?有更好的命令来防止这种情况发生吗?我应该使用屏幕之类的类似工具吗?