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

1

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

/etc/cron.daily/apt-compat tem uma linha exec /usr/lib/apt/apt.systemd.daily no final que executa o script apt.systemd.daily .

O systemd também executa /usr/lib/apt/apt.systemd.daily e usa um temporizador. A definição do serviço systemd fazendo a atualização pode ser encontrada em /lib/systemd/system/apt-daily.service . Ele chama o script apt.systemd.daily com o argumento update , enquanto a definição do serviço systemd em /lib/systemd/system/apt-daily-upgrade.service chama o mesmo script com o argumento install .

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

    
por Nilushan 17.01.2018 / 18:56

1 resposta

3

Os dois trabalhos 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 nos sistemas mais recentes, o temporizador systemd é o trabalho importante. Faz todo o trabalho pesado. O cronjob legado simplesmente aciona o timer 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 forma bem diferente: o cronjob aciona uma execução de atualizações automáticas.

    
por user535733 17.01.2018 / 20:28