Linux

Linux系統停止後執行命令的最佳方式

  • March 1, 2013

問題: 我們伺服器中的 SSD 需要在韌體更新後重新上電(即關閉/打開,而不是重置/熱重啟)。

想法: 使用“ipmitool 機箱電源循環”我可以循環伺服器的電源。但是,這會在系統仍在執行、掛載文件系統等時切斷電源。

我基本上想要的是延遲電源循環,以便系統有機會停止。但我想這必須在伺服器的 IPMI 板上實現,所以這不是一個真正的選擇。

我最初的想法是動態創建一個包含工具和庫的 ramdisk,並以某種方式將其集成到停止過程中。我看到有一個 /etc/init.d/halt,所以這將是我的起點。儘管我相信核心在關閉過程中的某個時刻開始殺死剩餘的程序。所以我什至不確定這是否是一種可行的方式。

問題: 在系統停止並解除安裝所有正常文件系統之後,執行 ipmitool(或任何其他命令)的最佳方式是什麼?

我會將它降低到單使用者模式,解除安裝任何非作業系統文件系統並將任何現有文件系統重新安裝為只讀。然後執行您的韌體更新工具和“ipmitool 機箱電源循環”。

它不漂亮也不聰明,但應該足夠安全

進行正常的完全關機和斷電;數到十,然後使用 LAN 喚醒或 IMPI 連接到 BMC(戴爾的情況下為 DRAC?)重新打開機器電源。如果您想將其完全保留在機器本地,某些 BIOS 將允許您通過 ACPI 指定喚醒/開機時間 - 請參閱http://www.mythtv.org/wiki/ACPI_Wakeup。例如,將開機時間設置為(現在)+(正常關機持續時間)+(一個小的安全餘量),然後執行關機。

我不知道這對於伺服器級硬體是否真的可行 - 如果您嘗試,請告訴我們。

引用自:https://serverfault.com/questions/436869