¿Por qué tanto cron como systemd ejecutan actualizaciones automáticas?

¿Por qué tanto cron como systemd ejecutan actualizaciones automáticas?

Estoy tratando de entender cómo se realizan las actualizaciones automáticas a través del paquete de actualizaciones desatendidas. Lo que se describe a continuación es lo que encontré en una instalación nueva de Ubuntu 16.04.3.

/etc/cron.daily/apt-compatTiene una línea exec /usr/lib/apt/apt.systemd.dailyal final que ejecuta el script apt.systemd.daily.

systemd también se ejecuta /usr/lib/apt/apt.systemd.dailyy utiliza un temporizador. La definición del servicio systemd que realiza la actualización se puede encontrar en /lib/systemd/system/apt-daily.service. Llama al script apt.systemd.dailycon el argumento updatemientras que la definición del servicio systemd /lib/systemd/system/apt-daily-upgrade.servicellama al mismo script con el argumento install.

Según tengo entendido, /usr/lib/apt/apt.systemd.dailyes el script utilizado por el paquete de actualizaciones desatendidas para realizar las actualizaciones automáticas. Lo que me gustaría saber es ¿por qué lo ejecutan tanto cron como systemd?

Respuesta1

Los dos trabajos son complementarios y la relación se describe en el trabajo cron (16.04 y posteriores):

# 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

En Ubuntu 16.04 y sistemas más nuevos, el temporizador systemd es el trabajo importante. Hace todo el trabajo pesado. El cronjob heredado simplemente activa el temporizador systemd, en caso de que por alguna razón se haya detenido.

En Ubuntu 14.04 y sistemas anteriores (que no son Systemd), el sistema funciona de manera bastante diferente: el cronjob desencadena una ejecución de actualizaciones desatendidas.

información relacionada