Каков правильный способ перезапуска зависимых служб при установке пакета?

Я создаю конфигурационный пакет и хотел бы остановить и перезапустить службы, чья конфигурация затронута. Прямо сейчас я использую service [stop|restart] в {pre,post}{inst,rm}. Я где-то читал вопрос о том, что invoke-rc.d - правильный путь, потому что он отличает предпочтения пользователя о службе. Однако я не мог найти никаких рекомендаций по этому поводу. Кто-нибудь знает о таких рекомендациях? Или есть какие-то советы относительно того, каким образом я должен выбрать? Пакет имеет внутреннее использование и, вероятно, будет только для 14.04 в течение следующих двух лет. Тем не менее, я хотел бы оставить как можно более чистое состояние для моего преемника, поэтому systemd тоже в моем уме.

На странице invoke-rc.d man:

[d4 ] Весь доступ к скриптам инициализации с помощью сценариев-помощников пакетов Debian должен выполняться с помощью invoke-rc.d.

В Руководстве по политике Debian invoke-rc.d man-страница :

Весь доступ к скриптам инициализации с помощью сценариев-хранителей пакетов Debian должен быть сделанные с помощью invoke-rc.d.

... Скрипты сторонних разработчиков должны использовать invoke-rc.d для вызова /etc/init.d/* initscripts вместо прямого вызова.

Контейнеры должны использовать уровень абстракции, предоставляемый программами update-rc.d и invoke-rc.d, для работы с initscripts в сценариях своих пакетов, таких как postinst, prerm и postrm.

Debian использует sysv-init и сразу переключится на systemd, и я полагаю, что руководство по политике будет своевременно обновлено для ссылки на systemctl. Однако я не уверен в этом: должен ли я использовать invoke-rc.d вместо service? Я могу сказать dpkg, что меня интересуют некоторые файлы (через триггеры), так что есть способ сказать dpkg, что меня интересуют некоторые сервисы, а также получить dpkg для перезапуска / перезагрузки? [ ! d13]

Чтобы уточнить: right Я не пишу скрипты init. Я предоставляю пакет с конфигурацией для других приложений, таких как Puppet, NTP и т. Д., Поэтому я останавливаю и перезапускаю соответствующие службы в сценариях.

1
задан 9 February 2017 в 03:18

1 ответ

Лучшим способом для системных систем является использование deb-systemd-invoke.

0
ответ дан 24 May 2018 в 05:53
  • 1
    Пожалуйста, дайте более подробную информацию о том, как использовать deb-systemd-invoke. – Cynplytholowazy 21 September 2017 в 14:10

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

Похожие вопросы: