Por que o cron e o systemd executam atualizações automáticas?

Por que o cron e o systemd executam atualizações automáticas?

Estou tentando entender como as atualizações automáticas estão acontecendo por meio do pacote de atualizações autônomas. O que está descrito abaixo é o que encontrei em uma nova instalação do Ubuntu 16.04.3.

/etc/cron.daily/apt-compattem uma linha exec /usr/lib/apt/apt.systemd.dailyno final que executa o script apt.systemd.daily.

systemd também é executado /usr/lib/apt/apt.systemd.dailye usa um timer. A definição de serviço do systemd que faz a atualização pode ser encontrada em /lib/systemd/system/apt-daily.service. Ele chama o script apt.systemd.dailycom o argumento updateenquanto a definição de serviço do systemd /lib/systemd/system/apt-daily-upgrade.servicechama o mesmo script com o argumento install.

Pelo que entendi, /usr/lib/apt/apt.systemd.dailyé o script usado pelo pacote unattended-upgrades para fazer as atualizações automáticas. O que eu gostaria de saber é por que o cron e o systemd o executam?

Responder1

Os dois jobs são complementares e o relacionamento é descrito no cron job (16.04 e mais recente):

# 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

No Ubuntu 16.04 e em sistemas mais recentes, o temporizador do systemd é a tarefa importante. Ele faz todo o trabalho pesado. O cronjob legado apenas aciona o cronômetro do systemd, caso por algum motivo ele tenha sido interrompido.

No Ubuntu 14.04 e em sistemas mais antigos (não Systemd), o sistema funciona de maneira bem diferente: o cronjob aciona uma série de atualizações autônomas.

informação relacionada