Запуск перезагрузки monit после автоматических обновлений

Я столкнулся с проблемой при объединении monit с автоматическими обновлениями Ubuntu/Debian . Monit отслеживает службы и двоичные файлы, помечает изменения, перезапускает процессы и т. д. по мере необходимости. Однако при обновлении пакета, предоставляющего услугу (скажем, nginx), запускается проверка контрольной суммы , поскольку двоичный файл изменился, как, например, в этой конфигурации:

      check process nginx with pidfile /var/run/nginx.pid
  group www
  group nginx
  start program = "/usr/bin/systemctl start nginx.service"
  stop program = "/usr/bin/systemctl stop nginx.service"
  if 5 restarts with 5 cycles then timeout
  depend nginx_bin

check file nginx_bin with path /usr/sbin/nginx
  group nginx
  if changed checksum then alert
  include /etc/monit/templates/rootbin

Обе вещи полезны, однако есть нежелательное взаимодействие с автоматическими обновлениями: если двоичный файл изменится, а затем служба остановится (по какой-то причине), она не будет перезапущена, поскольку monit не хочет перезагружать измененный двоичный файл. Это понятно, но в данном контексте раздражает, поскольку автоматические обновления являются законным и ожидаемым источником обновлений.

Есть ли какой-нибудь способ настроить сценарий перехвата после обновления в автоматических обновлениях, который я могу использовать для запускаmonit reloadчтобы обновить контрольные суммы и тем самым предотвратить эту проблему?

1 ответ

Я нашел чистое решение этой проблемы с помощью этого ответа .

Все, что мне нужно было сделать, это добавить файл конфигурации apt в/etc/apt/apt.conf.d/99monitсодержащий:

      DPkg::Post-Invoke {"/usr/bin/monit reload";};

Теперь при каждом обновлении пакетов monit перезагружается. Может быть немного шумно, но это случается не очень часто.

Другие вопросы по тегам