Cron

重啟命令會等待無人值守升級完成嗎?

  • July 2, 2020

我在電腦上隨機執行無人值守升級。我有一個 cron 在每天的固定時間重新啟動。如果我的重啟 cron 在更新過程中執行,它會等待重啟還是在安裝過程中強制重啟?

當您執行reboot您的 init 系統時,請通過發送 SIGTERM 信號來關閉正在執行的程序。如果它們沒有在合理的時間內關閉(如果您在使用 systemd 的機器上,此時間預設為 90 秒),init 系統將發送一個 SIGKILL 信號。

我們當然不想終止繁忙的無人值守升級過程,因為這可能會導致安裝一半的軟體包。知道完整執行(例如安裝許多在同一天發布的更新)可能需要超過 90 秒才能完成無人值守的升級,開發人員增加了超時。在我的 Ubuntu 20.04 機器上,我得到:

$ grep TimeoutStopSec /usr/lib/systemd/system/unattended-upgrades.service 
TimeoutStopSec=1800

即使在較舊的機器上,30 分鐘也應該足夠了。如果您不想等待那麼久,或者您仍然擔心無人值守升級執行會被中斷,請考慮在 中啟用以下參數/etc/apt/apt.conf.d/50unattended-upgrades

// Split the upgrade into the smallest possible chunks so that
// they can be interrupted with SIGTERM. This makes the upgrade
// a bit slower but it has the benefit that shutdown while a upgrade
// is running is possible (with a small delay)
//Unattended-Upgrade::MinimalSteps "true";

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