如果我通过ssh到GCP运行一个脚本,如果我的本地机器进入睡眠状态,它会被中断吗



我有一个脚本,它应该需要大约8个小时才能在带有8CPU的GCP VM实例上运行。我对云计算有点陌生,在设置ssh、运行python文件并离开时有点紧张。

如果我ssh到一个GCPVM实例中,启动一个python脚本并离开,即使我的计算机进入睡眠状态,它还会继续运行吗?我的直觉是否定的,因为这似乎是云计算的全部意义,但我想确定。谢谢

你是对的,如果你的计算机进入睡眠状态,ssh会话关闭,你的脚本就会停止。

为了防止这种情况,您可以先使用&,然后使用disown将脚本推送到后台,并从shell的作业控制中删除进程,但它仍然保持与终端的连接。

例如:

  1. 我运行了我的脚本

./script.sh &

  1. 我们将获得JobID,因为它将在后台开始运行:

[1] 7812

  1. 有了这个JobID,我可以运行disown命令将进程从shell的作业控制中删除:

disown 7812

此时,您可以关闭ssh会话,脚本将继续工作。

或者,您也可以使用Screen。当screen被调用时,它会创建一个包含shell(或指定的命令(的单个窗口,然后让开,以便您可以像往常一样使用程序。

即使您的会话断开,屏幕也会继续运行。当你重新连接到服务器时,你可以重新连接到屏幕会话,一切都会像什么都没发生一样,如果你想在标准输出中看到脚本的结果,这是一个很好的选择。

您可以通过以下链接查阅官方文档。此外,您可以使用以下指南来了解如何使用屏幕。

此外,您可以看到下面的帖子,社区在其中解释了nohupdisown&之间的区别。

我希望你觉得这些信息有用。

是的,如果关闭SSH会话,脚本就会停止。我通常对这个使用nohup命令

nohup <command + param> &

我假设您在linux下

相关内容

最新更新