在documentation中,它表示关闭脚本仅在尽力而为的基础上运行,并且不能保证它们运行。我想知道他们不会跑的地方是什么条件?
修改
正如AndyJ指出的那样,我链接的文档描述了脚本假设何时运行。为了澄清,我已经阅读了所有这些,但在我看来,缺乏运行保证包括它通常应该的条件。
因此,为了更好地表达我的问题,脚本是否保证在文档说它运行它的条件下运行,或者只有当应该时才会运行,而不是当它时
答案 0 :(得分:2)
他们在您链接到的documentation中解决此问题。
关闭脚本调用
当计划重新启动或终止实例时,将执行关闭脚本。 有很多方法可以重新启动或终止实例,但只有一些操作会触发关闭脚本运行。关闭脚本将在以下时间运行:
使用instances()。delete删除实例。请求。这包括使用API的任何工具或脚本,例如Google Cloud Platform Console和gcloud compute。 通过控制台或instances.stop()方法关闭实例。 通过对客户机操作系统的请求重新启动或关闭实例,例如sudo shutdown或sudo reboot。
注意:如果关机脚本需要网络连接,我们建议使用此方法关闭实例,因为已知网络连接丢失问题。该问题主要影响已在客户机操作系统之外关闭的实例。 如果使用instances()。reset。
重置实例,则不会运行关闭脚本关闭脚本运行时间
当调用关闭脚本时,它的运行时间有限,在请求关闭或重新启动实例之间,实例终止时。在此期间,Compute Engine将尝试运行您的关闭脚本,但如果脚本花费的时间超过此时间段,则实例将自动终止并且所有正在运行的任务都将被终止。如果通过向来宾操作系统发出请求(例如,运行sudo shutdown)来关闭或重新启动实例,则该限制不适用。
通常,我们建议您的关闭脚本在此时间段内完成运行,以便操作系统有时间完成其关闭,包括将缓冲区刷新到磁盘。
有关此时间限制的详细信息,请参阅关机时间。