启动脚本在停止之前是否有时间限制?

时间:2016-07-05 19:25:58

标签: google-compute-engine

我需要在google计算引擎中创建一个VM实例,启动脚本需要30分钟,但它永远不会完成,它会在实例启动后大约10分钟停止。有超时吗?还有另一种方法可以完成我需要做的事情吗?谢谢!

1 个答案:

答案 0 :(得分:2)

鉴于评论中的其他说明:

  

我的脚本下载另一个脚本然后执行它,该脚本执行的操作是下载一些大文件,然后根据纬度/经度计算一些值。然后,当该过程完成时,VM将被销毁。

我的建议是异步运行大型下载和处理而不是同步。原因在于,如果它是同步的,它是VM启动的一部分(在关键路径中),并且VM监控基础架构注意到VM未在合理数量的情况下完成其启动阶段时间,并终止它。

相反,将重载处理从关键路径中取出并在后台进行,即异步处理。

换句话说,启动脚本目前可能看起来像:

# Download the external script
curl [...] -o /tmp/script.sh

# Run the file download, computation, etc. and shut down the VM.
/tmp/script.sh

我建议将其转换为:

# Download the external script
curl [...] -o /tmp/script.sh

# Run the file download, computation, etc. and shut down the VM.
nohup /tmp/script.sh &

这样做是在后台启动繁重的处理,但也将它与父进程断开连接,以便在父进程(实际启动脚本)终止时不会自动终止它。我们希望主启动脚本终止,以便整个VM启动阶段标记为已完成。

有关详细信息,请参阅Wikipedia page on nohup