Linux 在Google可抢占实例上抢占时如何保存状态?

Linux 在Google可抢占实例上抢占时如何保存状态?,linux,state,google-compute-engine,preemption,Linux,State,Google Compute Engine,Preemption,我需要能够在基于Centos的Google Compute实例第一次收到抢占信号时保存其状态。非常清楚地表明,“ACPI G2软关闭”信号在可抢占停机前30秒发送。不幸的是,谷歌没有给出任何例子来演示如何捕获这个信号,我还没有找到捕获它的方法 我最初的尝试都集中在使用acpid守护进程的ACPI接口上。使用它,我能够毫无问题地捕获关机(按钮/电源)事件。但无论我试图捕捉什么事件(按钮、电源、睡眠),我都无法捕捉到G2状态的状态转换,我想这就是我要寻找的 是否有人在Centos(或任何Linux)

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

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

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

您可能希望使用以下方法:

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

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

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


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

谢谢米莎;我将尝试关闭脚本。但捕捉G2状态的初始变化不是更好吗?如果是这样的话,有没有办法使用这些早期信息?@NigelRMurray-对不起,我不知道是否有可能捕捉到G2状态的变化,或者如何做到这一点。