Я створюю конфігураційний пакет і хочу зупинити та перезапустити служби, на конфігурацію яких впливає. Зараз я використовую service [stop|restart]
в {pre,post}{inst,rm}
шляху. Я десь читав у запитанні, що invoke-rc.d
це правильний шлях, оскільки він шанує вподобання користувачів щодо послуги. Однак я не зміг знайти жодних вказівок з цього приводу. Хтось знає про такі вказівки? Або є якісь поради щодо того, який спосіб вибрати? Пакет використовується для внутрішнього використання, і, ймовірно, буде лише 14.04 протягом наступних двох років. Однак я хотів би залишити якомога більш чистий стан для свого наступника, про це також systemd
і в моїх думках.
На invoke-rc.d
чоловіковій сторінці :
Весь доступ до скриптів init сценаріями технічного обслуговування пакунків Debian повинен здійснюватися через invoke-rc.d .
З Посібника з політики Debian, Розділ 9, Розділ 3.3 :
Обслуговувачі повинні використовувати рівень абстракції, що надається програмами update-rc.d та invoke-rc.d, для роботи з initscripts у скриптах своїх пакетів, таких як postinst, prerm та postrm.
...
Сценарії підтримки пакета повинні використовувати invoke-rc.d для виклику /etc/init.d/* initscripts, а не викликати їх безпосередньо.
Debian використовує sysv-init
та перейде безпосередньо на systemd
, і я думаю, що посібник з політики буде оновлений вчасно, на який слід посилатися systemctl
. Однак, в чому я не впевнений, це таке: чи слід використовувати invoke-rc.d
замість service
? Я можу сказати, dpkg
що мене цікавлять деякі файли (через тригери), тож чи є спосіб сказати, dpkg
що мене цікавлять і деякі сервіси, і я можу dpkg
зробити перезавантаження / перезавантаження?
Для уточнення: я не пишу сценаріїв init. Я надаю пакет з конфігурацією для інших програм, таких як Puppet, NTP тощо, тому я зупиняюсь і перезапускаю відповідні служби в скриптах.
Ось , наприклад, є Docker питання про invoke-rc.d
проти service
. Питання досі залишається відкритим: одна людина, можливо, обслуговуючий персонал, коментує, що їм напевно цікаво зробити це правильно - очевидно, ніхто з нас не впевнений, що це таке. (Моє запитання не залежить від цього питання.)
invoke-rc.d
man" та документи Debian Policy вказують нам використовувати її у зв'язку зі/etc/init.d/
сценаріями (можливо, тому, що вони все ще використовували sysv-init). Як це змінюється Upstart або systemd?