![¿Por qué tanto cron como systemd ejecutan actualizaciones automáticas?](https://rvso.com/image/1157176/%C2%BFPor%20qu%C3%A9%20tanto%20cron%20como%20systemd%20ejecutan%20actualizaciones%20autom%C3%A1ticas%3F.png)
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-compat
Tiene una línea exec /usr/lib/apt/apt.systemd.daily
al final que ejecuta el script apt.systemd.daily
.
systemd también se ejecuta /usr/lib/apt/apt.systemd.daily
y 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.daily
con el argumento update
mientras que la definición del servicio systemd /lib/systemd/system/apt-daily-upgrade.service
llama al mismo script con el argumento install
.
Según tengo entendido, /usr/lib/apt/apt.systemd.daily
es 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.