如何自动退出/停止正在运行的实例

AAP*_*AAP 7 google-compute-engine

我已经设法创建一个实例和ssh.但是,我有几个关于Google Compute Engine的问题.

  1. 我知道我的实例运行时会收取费用.直到我退出实例.我的理解是否正确?
  2. 我希望在我的实例上运行一些批处理作业(java程序).如何在作业完成后自动停止实例(这样我就不会因为它可能运行的额外时间而收费)
  3. 如果我启动该作业并断开我的PC,该作业是否会继续在该实例上运行?

此致,Asim

Bri*_*sey 11

正确,实例在运行时收取费用.(至分钟,至少10分钟).实例从它们通过API启动时开始运行,直到它们通过API停止.是否有任何用户通过SSH登录并不重要.对于大多数自动用例,用户从不登录 - 通过启动脚本安装和启动程序.

您可以通过Cloud Console查看正在运行的实例,以确认当前是否正在运行.

如果要从实例内部停止实例,最简单的方法是使用compute-rw 服务帐户范围启动实例并使用gcutil.

例如,要使用compute-rw作用域从命令行启动实例:

$ gcutil --project=<project-id> addinstance <instance name> --service_account_scopes=compute-rw
Run Code Online (Sandbox Code Playgroud)

(这是通过云控制台手动创建实例时的默认设置)

稍后,在批处理作业完成后,您可以从实例内部删除实例:

$ gcutil deleteinstance -f <instance name>
Run Code Online (Sandbox Code Playgroud)


Yur*_*urg 7

您可以将暂停命令放在批处理脚本的末尾(假设您将结果输出到永久磁盘上)。停止后,实例将处于“已终止”状态,并且您无需付费。请参阅https://developers.google.com/compute/docs/pricing 向下滚动到“实例正常运行时间”

  • 如果有人想知道,这个命令对我有用:`sudo shutdown -h now` (3认同)