如果我通过 ssh 到 GCP 运行脚本,如果我的本地计算机进入睡眠状态,脚本会被中断吗?

roc*_*ves 7 google-cloud-platform

我有一个脚本,在具有 8 个 CPU 的 GCP VM 实例上运行大约需要 8 小时左右。我对云计算有点陌生,对设置 ssh、运行我的 python 文件然后走开感到有点紧张。

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

Jos*_*llo 5

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

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

例如:

  1. 我运行了我的脚本

./script.sh &

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

[1] 7812

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

disown 7812

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

或者,您也可以使用Screen. 当 screen 被调用时,它会创建一个带有 shell(或指定命令)的单个窗口,然后不妨碍您,以便您可以像平常一样使用该程序。

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

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

此外,您可以查看以下帖子,其中社区解释了nohup,disown和之间的区别&

我希望这个信息对您有所帮助。