Я пытаюсь понять, как происходит автоматическое обновление через пакет без обслуживания. Ниже описывается то, что я нашел в новой установке Ubuntu 16.04.3.
/etc/cron.daily/apt-compat имеет строку exec /usr/lib/apt/apt.systemd.daily в конце, которая выполняет скрипт apt.systemd.daily.
systemd также выполняет /usr/lib/apt/apt.systemd.daily и использует таймер. Определение службы systemd, выполняющее обновление, можно найти в /lib/systemd/system/apt-daily.service. Он вызывает скрипт apt.systemd.daily с аргументом update, в то время как определение службы systemd в /lib/systemd/system/apt-daily-upgrade.service вызывает тот же скрипт с аргументом install.
Как я понимаю, /usr/lib/apt/apt.systemd.daily - это скрипт используется для автоматического обновления обновлений для автоматического обновления. Я хотел бы знать, почему оба cron и systemd выполняют его?
Два задания бесплатны, и связь описана в задании cron (16.04 и новее):
# 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
В Ubuntu 16.04 и более новых системах таймер systemd является важной задачей. Он делает весь тяжелый подъем. Наследственный cronjob просто запускает таймер systemd, если по какой-то причине он был остановлен.
В Ubuntu 14.04 и более старых системах (non-Systemd) система работает совершенно по-другому: cronjob запускает запуск без присмотра-обновления.
Два задания бесплатны, и связь описана в задании cron (16.04 и новее):
# 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
В Ubuntu 16.04 и более новых системах таймер systemd является важной задачей. Он делает весь тяжелый подъем. Наследственный cronjob просто запускает таймер systemd, если по какой-то причине он был остановлен.
В Ubuntu 14.04 и более старых системах (non-Systemd) система работает совершенно по-другому: cronjob запускает запуск без присмотра-обновления.
Два задания бесплатны, и связь описана в задании cron (16.04 и новее):
# 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
В Ubuntu 16.04 и более новых системах таймер systemd является важной задачей. Он делает весь тяжелый подъем. Наследственный cronjob просто запускает таймер systemd, если по какой-то причине он был остановлен.
В Ubuntu 14.04 и более старых системах (non-Systemd) система работает совершенно по-другому: cronjob запускает запуск без присмотра-обновления.