关闭浏览器后谷歌云实例终止

Ser*_*kin 15 google-compute-engine google-cloud-platform

我有一个 bash 脚本。我想在谷歌云服务器上连续运行它。我通过浏览器中的 SSH 连接到我的 VM,但是在我关闭浏览器后,脚本停止了。我尝试使用 Cloud Shell,但如果我重新启动笔记本电脑,脚本会从头启动。它不能连续工作!是否可以在谷歌云中启动我的脚本,关闭笔记本电脑并确保我的脚本有效?

小智 22

解决方案:GNU 屏幕。这个很棒的小工具可让您在通过 ssh 连接到远程服务器后运行一个进程,然后与它分离 - 让它像在前台运行一样运行(而不是在后台停止)。

因此,在我们通过 ssh 连接到我们的 GCE VM 之后,我们将需要: 1. 安装 GNU screen: apt-get update apt-get upgrade apt-get install screen

  1. 输入“屏幕”。这将打开一个新屏幕 - 在外观和感觉上类似于“清晰”会产生的效果。
  2. 运行进程(例如:./init-dev.sh 来启动一个 ChicagoBoss erlang 服务器)
  3. 键入:Ctrl + A,然后按 Ctrl + D。这将分离您的屏幕会话,但让您的进程继续运行!
  4. 随意关闭SSH终端。只要您愿意,就 ssh 回到您的 GCE 虚拟机,然后输入 screen -r 以恢复您之前分离的会话。
  5. 要杀死所有分离的屏幕,请运行: screen -ls | grep pts | 切-d。-f1 | awk '{print $1}' | xargs 杀死


Tud*_*rmi 2

您有以下选项:
1.任务计划- 涉及cron 作业。检查这个样本。通过这个答案
2.使用启动脚本

我执行了以下测试,它对我有用:
在 GCE 中创建了一个实例,通过 SSH-d 进入其中并创建了以下脚本myscript.bash

#!/bin/bash          
          sleep 15s
          echo Hello World > result.txt
Run Code Online (Sandbox Code Playgroud)

然后,运行
$ bash myscript.bash
并立即关闭保存 SSH 会话的浏览器窗口。
然后我等待了至少 15 秒,重新与相关虚拟机建立 SSH 连接并运行,$ ls瞧:
myscript.bash result.txt

因此,即使关闭持有 SSH 会话的浏览器,脚本也会运行。
不过,从技术上讲,我相信您的解决方案在于 1. 或 2。