為什麼 cron 和 systemd 都會執行自動升級?

為什麼 cron 和 systemd 都會執行自動升級?

我試圖了解如何透過無人值守升級套件進行自動升級。以下描述的是我在全新安裝的 Ubuntu 16.04.3 上發現的內容。

/etc/cron.daily/apt-compatexec /usr/lib/apt/apt.systemd.daily末尾有一行執行腳本apt.systemd.daily

systemd 也會執行/usr/lib/apt/apt.systemd.daily並且它使用計時器。執行更新的 systemd 服務定義可以在 中找到/lib/systemd/system/apt-daily.service。它使用apt.systemd.daily參數呼叫腳本update,而 systemd 服務定義使用/lib/systemd/system/apt-daily-upgrade.service參數呼叫相同的腳本install

據我了解,/usr/lib/apt/apt.systemd.daily無人值守升級包使用的腳本進行自動升級。我想知道的是為什麼 cron 和 systemd 都執行它?

答案1

這兩個作業是互補的,其關係在 cron 作業(16.04 及更高版本)中描述:

# Systemd systems use a systemd timer unit which is preferable to
# run. We want to randomize the apt update and unattended-upgrade
# runs as much as possible to avoid hitting the mirrors all at the
# same time. The systemd time is better at this than the fixed
# cron.daily time

在 Ubuntu 16.04 和更新的系統上,systemd 計時器是重要的工作。它完成了所有繁重的工作。遺留的 cronjob 只是觸發 systemd 計時器,以防由於某種原因它被停止。

在 Ubuntu 14.04 和更早的系統(非 Systemd)上,系統的工作方式完全不同:cronjob 觸發運行無人值守更新。

相關內容