多重 Linux 關機時間表及其行為

多重 Linux 關機時間表及其行為

如果我多次安排關閉,會出現什麼行為?例如:

shutdown +20
shutdown +25

第二個關閉指令是否會覆蓋第一個關閉指令?

另外,如果我使用 shutdown -c 取消關閉會怎麼樣?例如

shutdown +20
shutdown +25
shutdown -c

它將取消所有關閉計劃還是僅取消最後一個計劃?

答案1

如果您使用的是系統:

  • 有一個集中管理的關閉計時器(由系統登入服務)。嘗試多次安排關閉只會自動取消並用新參數取代逾時和操作。

  • shutdown +XX呼叫 systemd-logind 的 ScheduleShutdown(),它設定或調整計時器。

  • shutdown -c呼叫 systemd-logind 的 CancelScheduledShutdown(),這會停用計時器。

如果您正在使用關閉來自 Linux sysvinit 的命令:

  • 程式使用 pid 檔案來確保只能安排一次關閉。如果您嘗試運行它兩次,您應該收到訊息“shutdown:已經運行”。 (除非您不小心刪除了它用來追蹤事物的 pid 檔案。)

  • shutdown +XX如果發現某個進程已在背景執行(根據 /var/run/shutdown.pid 中儲存的 PID),則拒絕啟動新的「排隊關閉」進程。

  • shutdown -c假設您不應該啟動多個進程,則恰好殺死一個「排隊關閉」進程(其 PID 是從 shutdown.pid 讀取的)。

相關內容