Tworzę pakiet konfiguracyjny i chciałbym zatrzymać i ponownie uruchomić usługi, których konfiguracja dotyczy. Teraz Używam service [stop|restart]
w {pre,post}{inst,rm}
drodze. Czytam pytanie gdzieś invoke-rc.d
we właściwy sposób, ponieważ honoruje preferencje użytkownika dotyczące usługi. Nie mogłem jednak znaleźć żadnych wskazówek na ten temat. Czy ktoś zna takie wytyczne? A może masz jakąś radę, którą wybrać? Pakiet jest przeznaczony do użytku wewnętrznego i prawdopodobnie będzie dostępny tylko na 14.04 przez następne dwa lata. Chciałbym jednak pozostawić tak czysty stan, jak to możliwe dla mojego następcy, tak też systemd
myślę.
Cały dostęp do skryptów inicjujących przez skrypty opiekuna pakietów Debiana powinien odbywać się poprzez invoke-rc.d .
Z Podręcznika Polityki Debiana, Rozdział 9, Rozdział 3.3 :
Opiekunowie powinni korzystać z warstwy abstrakcji dostarczanej przez programy update-rc.d i invoke-rc.d do radzenia sobie ze skryptami initscript w skryptach swoich pakietów, takich jak postinst, prerm i postrm.
...
Skrypty zarządzające pakietami muszą używać invoke-rc.d, aby wywoływać initscripts /etc/init.d/*, zamiast wywoływać je bezpośrednio.
Debian używa sysv-init
i przejdzie bezpośrednio do systemd
, i przypuszczam, że podręcznik polityki zostanie zaktualizowany w odpowiednim czasie, aby się do niego odwołać systemctl
. Nie jestem jednak pewien: czy powinienem użyć invoke-rc.d
zamiast service
? Mogę powiedzieć dpkg
, że jestem zainteresowany niektórymi plikami (za pomocą wyzwalaczy), więc czy istnieje sposób, aby powiedzieć dpkg
, że jestem również zainteresowany niektórymi usługami i rozpocząć dpkg
restartowanie / przeładowywanie?
W celu wyjaśnienia: ja nie piszę skrypty startowe. Dostarczam pakiet z konfiguracją dla innych aplikacji, takich jak Puppet, NTP itp., Więc zatrzymuję i ponownie uruchamiam odpowiednie usługi w skryptach.
Oto , na przykład, jest to kwestia o Docker invoke-rc.d
vs service
. Kwestia jest nadal otwarta, a jedna osoba, prawdopodobnie opiekun, komentuje, że jest zdecydowanie zainteresowana zrobieniem tego we właściwy sposób - najwyraźniej żadne z nas nie jest pewne, co to jest. (Moje pytanie jest niezależne od tego problemu).
invoke-rc.d
Strona mężczyzna i docs Debian Policy mówi nam go używać w połączeniu z/etc/init.d/
skrypty (prawdopodobnie dlatego, że nadal stosowane sysv inicjalizacji). Jak to się zmienia w Upstart lub systemd?invoke-rc.d ... || service ...
Lepszym sposobem dla systemów systemowych jest użycie deb-systemd-invoke .
źródło
deb-systemd-invoke
.