我有一个脚本,它应该需要大约8个小时才能在带有8CPU的GCP VM实例上运行。我对云计算有点陌生,在设置ssh、运行python文件并离开时有点紧张。
如果我ssh到一个GCPVM实例中,启动一个python脚本并离开,即使我的计算机进入睡眠状态,它还会继续运行吗?我的直觉是否定的,因为这似乎是云计算的全部意义,但我想确定。谢谢
你是对的,如果你的计算机进入睡眠状态,ssh会话关闭,你的脚本就会停止。
为了防止这种情况,您可以先使用&
,然后使用disown
将脚本推送到后台,并从shell的作业控制中删除进程,但它仍然保持与终端的连接。
例如:
- 我运行了我的脚本
./script.sh &
- 我们将获得JobID,因为它将在后台开始运行:
[1] 7812
- 有了这个JobID,我可以运行
disown
命令将进程从shell的作业控制中删除:
disown 7812
此时,您可以关闭ssh会话,脚本将继续工作。
或者,您也可以使用Screen
。当screen被调用时,它会创建一个包含shell(或指定的命令(的单个窗口,然后让开,以便您可以像往常一样使用程序。
即使您的会话断开,屏幕也会继续运行。当你重新连接到服务器时,你可以重新连接到屏幕会话,一切都会像什么都没发生一样,如果你想在标准输出中看到脚本的结果,这是一个很好的选择。
您可以通过以下链接查阅官方文档。此外,您可以使用以下指南来了解如何使用屏幕。
此外,您可以看到下面的帖子,社区在其中解释了nohup
、disown
和&
之间的区别。
我希望你觉得这些信息有用。
是的,如果关闭SSH会话,脚本就会停止。我通常对这个使用nohup
命令
nohup <command + param> &
我假设您在linux下