Systemd

重啟前安全暫停

  • July 27, 2017

我有一台 kiosk Linux Debian 電腦。

這台電腦沒有物理電源按鈕,也沒有鍵盤。

我希望允許使用者在不破壞文件系統的情況下停止和/或重新啟動這台電腦,同時仍然能夠使用 ssh 遠端執行此操作。

 

我的想法:

  • 在圖形應用程序中創建停止/重啟按鈕
  • 按下按鈕時,電腦啟動關機
  • 當電腦準備好關閉電源時(每個文件系統都已解除安裝或只讀),將顯示一條消息:“您現在可以拔掉電源線,或等待 30 秒自動重啟”
  • 使用 ssh 遠端執行此操作時,無需親自到場即可完成重啟

 

想法:

  • 依賴於每個文件系統處於穩定狀態時觸發的 systemd 功能。哪一個?
  • 按下軟體按鈕時使根分區只讀,因此可以安全地關閉電腦。但這不需要那麼容易的改變
  • 依賴 GRUB2:從軟體啟動的關機和重新啟動都導致電腦重新啟動,並使用顯示消息並等待密鑰的特殊 GRUB2 條目(理想情況下,當使用 ssh 完成時,呼叫正常 GRUB2 條目,允許立即啟動。至於來電時冷啟動)

 

如果不清楚,請隨時提出問題。

您可以中繼 GRUB 超時以允許使用者拔出系統

在啟動前/etc/default/grub設置GRUB_TIMEOUT=30為 30s 超時預設條目允許使用者在 linux 啟動前斷開電源。

在 GRUB 菜單等待超時時,整個系統處於只讀狀態,因此斷開電源應該沒有任何危害。

Grub 還允許您顯示背景圖像,例如可以顯示一個巨大的粗體文本,向使用者表明斷開電源是安全的。

優點:

  • 很容易實現
  • 升級系統的時候大概不會壞
  • 可以輕鬆地向使用者提供操作說明。
  • 斷電時系統損壞的風險最小
  • 標準rebootpoweroff命令就像在普通系統上一樣工作。

缺點:

  • 每次開機延遲30s

引用自:https://unix.stackexchange.com/questions/382026