1

当基于 Centos 的 Google Compute 实例第一次收到抢占信号时,我需要能够保存它的状态。该文档非常清楚地表明“ACPI G2 Soft Off”信号在抢占式关机前 30 秒发送。不幸的是,谷歌没有给出示例来演示如何捕获此信号,我还没有找到捕获它的方法。

我最初的尝试都集中在使用 acpid 守护进程的 ACPI 接口上。使用它,我已经能够毫无问题地捕获关机(按钮/电源)事件。但是无论我尝试捕获什么事件(按钮、电源、睡眠),我都无法捕获到 G2 状态的状态转换,我认为这就是我正在寻找的。

有没有人成功地在 Centos(或任何 Linux)环境中捕获抢占信号?

4

1 回答 1

2

您可能需要为此使用关闭脚本

创建并运行关闭脚本,允许您在实例终止或重新启动之前尽最大努力执行命令。如果您依靠自动化脚本来启动和关闭实例,这将非常有用,让您的实例有时间清理或执行任务,例如导出日志或与其他系统同步。

如果您有一个正在自动扩展的托管实例组,关闭脚本可能会很有用,因为如果实例由于自动扩展而关闭,关闭脚本会在实例终止之前执行您定义的任何操作。例如,您的关闭脚本可能会复制处理过的数据或备份任何日志。

关闭脚本的功能与启动脚本非常相似;启动脚本的大部分文档也适用于关闭脚本。

但是,由于您完成工作的时间有限,请考虑使用在您的实例被抢占时不会被删除的持久性外部存储系统,例如Google Cloud StorageGoogle Cloud BigtableGoogle Cloud Datastore或其他。

于 2015-10-05T16:21:59.567 回答