Какой хороший способ запустить перезапуск apache после установки .deb? - PullRequest
3 голосов
/ 01 июня 2011

У меня есть несколько пользовательских .deb, которые я создал.Все они зависят от apache, и после обновления любого пакета apache необходимо перезапустить.

Наивный перезапуск apache из postinst Я получаю перезапуск для каждого обновляемого пакета, что очень медленно.Кто-нибудь знает, есть ли хороший способ избежать этого?Триггеры Dpkg, кажется, правильный подход, но я не могу найти много на пути к документации.Apache определяет свой собственный триггер для активации.Если да, то как мне это назвать?

1 Ответ

1 голос
/ 08 мая 2012

Да, триггеры dpkg были бы правильным подходом здесь.И нет, я не верю, что существует какой-либо существующий триггер-фу, чтобы решить эту проблему для вас.

В самом простом случае ваша установка может состоять из чего-то вроде следующего:

  • Какой-то общий пакет, от которого будут зависеть все ваши работающие с Apache дэбы.Давайте назовем это «apache-координирование».
  • Файл apache-координирования DEBIAN/triggers должен содержать строку типа interest apache-coordination-reload.
  • apache-координирование postinst должно обрабатывать случай, когда он получаетвызывается с аргументом "triggered" и где "apache-coordination-reload" находится где-то во втором аргументе, путем фактической перезагрузки или перезапуска apache (в идеале через invoke-rc.d или что-то подобное, так что уровни выполнения соблюдаются).
  • Другие ваши пакеты должны активировать триггер apache-coordination-reload, когда это необходимо.Это можно сделать, отправив DEBIAN/triggers файлы для каждого из них, содержащие activate apache-coordination-reload.
...