Warum führen sowohl cron als auch systemd automatische Upgrades aus?

Warum führen sowohl cron als auch systemd automatische Upgrades aus?

Ich versuche zu verstehen, wie automatische Upgrades über das Paket „unattended-upgrades“ ablaufen. Was unten beschrieben wird, habe ich bei einer Neuinstallation von Ubuntu 16.04.3 gefunden.

/etc/cron.daily/apt-compatexec /usr/lib/apt/apt.systemd.dailyhat am Ende eine Zeile , die das Skript ausführt apt.systemd.daily.

systemd wird ebenfalls ausgeführt /usr/lib/apt/apt.systemd.dailyund verwendet einen Timer. Die systemd-Dienstdefinition, die das Update durchführt, finden Sie in /lib/systemd/system/apt-daily.service. Sie ruft das Skript apt.systemd.dailymit dem Argument auf update, während die systemd-Dienstdefinition in /lib/systemd/system/apt-daily-upgrade.servicedasselbe Skript mit dem Argument aufruft install.

So wie ich es verstehe, /usr/lib/apt/apt.systemd.dailywird das Skript vom Paket „unattended-upgrades“ verwendet, um die automatischen Upgrades durchzuführen. Was mich interessiert, ist, warum sowohl Cron als auch Systemd es ausführen?

Antwort1

Die beiden Jobs ergänzen sich und die Beziehung wird im Cron-Job (16.04 und neuer) beschrieben:

# 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

Unter Ubuntu 16.04 und neueren Systemen ist der systemd-Timer die wichtigste Aufgabe. Er erledigt die ganze schwere Arbeit. Der alte Cronjob löst lediglich den systemd-Timer aus, falls er aus irgendeinem Grund angehalten wurde.

Unter Ubuntu 14.04 und älteren Systemen (nicht Systemd) funktioniert das System ganz anders: Der Cronjob löst eine Reihe unbeaufsichtigter Updates aus.

verwandte Informationen