2015-10-05 57 views
1

我需要能夠保存基於Centos的Google Compute實例在第一次收到搶佔信號時的狀態。 documentation非常清楚地表明,在可搶佔關機前30秒發送「ACPI G2軟關閉」信號。不幸的是,Google沒有給出任何示例來演示如何捕獲這個信號,我還沒有找到捕獲它的方法。如何在搶先於Google搶先實例時保存狀態?

我最初的嘗試都是圍繞使用acpid守護進程的ACPI接口進行的。使用它,我已能夠捕獲關機(按鈕/電源)事件,沒有任何問題。但是,無論我嘗試捕獲什麼事件(按鈕,電源,睡眠),我都無法捕獲狀態轉換到G2狀態,我認爲這是我正在尋找的狀態。

是否有人成功設法在Centos(或任何Linux)環境中捕獲搶佔信號?

回答

2

您可能需要使用shutdown scripts此:

創建和運行關機腳本,讓你執行一個實例終止或重啓權利之前的命令,盡最大努力的基礎上。如果您依靠自動化腳本來啓動和關閉實例,這將非常有用,從而讓您的實例有時間清理或執行任務,例如導出日誌或與其他系統同步。

如果您有一個自動調整的受管實例組,關閉腳本可能很有用,因爲如果由於自動調整關閉了實例,關閉腳本將執行您在實例終止之前定義的任何操作。例如,您的關機腳本可能會複製已處理的數據或備份任何日誌。

停機腳本的功能與startup scripts非常相似;啓動腳本的大部分文檔也適用於關閉腳本。

但是,因爲你只有有限的時間做工作,可以考慮使用,當你的實例被搶佔,這將不會被刪除持久的外部存儲系統,例如,Google Cloud StorageGoogle Cloud BigtableGoogle Cloud Datastore,或者其他。

+0

謝謝米莎;我會嘗試關閉腳本。但是,捕獲最初的G2狀態變化不是更好嗎?如果是這樣,是否沒有辦法使用這個早期的信息? –

+0

@NigelRMurray - 抱歉,不知道是否有可能捕獲G2狀態更改,或者如何執行此操作。 –