Chcę ponownie załadować (nie restartować!) Grupę usług po zdarzeniu.
Na przykład, jeśli zaktualizuję moje certyfikaty SSL, chcę, aby każda usługa, która ich używa, została ponownie załadowana ( nginx
i postfix
przychodzi mi na myśl). Nie chcę też pamiętać, które usługi na danym serwerze używają certyfikatów SSL. Powinno wystarczyć zgrupowanie ich podczas konfiguracji.
Z drugiej strony chciałbym uniknąć zmiany .service
plików dostarczanych z pakietami, ponieważ będzie to wymagało ręcznej interwencji podczas aktualizacji.
Jak to osiągnąć?
Istnieje możliwość zatrzymania grupy usług na żądanie , ale spowodowałoby to, że byłyby niedostępne przez sekundę lub dwie, lub gorzej - mogą pozostać bezczynne, dopóki nie zostaną naprawione. Nie stać mnie na to.
/opt/letsencrypt/letsencrypt-auto renew --pre-hook "service nginx stop; service postfix stop; service squid stop" --post-hook "service nginx start; service postfix start; service squid start"
: certmonger ma polecenia postave i preave.service
edytujesz pliki jako zastąpienia , możesz uniknąć problemu z aktualizacją.sudo systemctl edit foo.service
zapisze twoje zmiany/etc/systemd/system/foo.service.d/override.conf
zamiast zmieniać zainstalowanyfoo.service
plik.Odpowiedzi:
Utwórz
/etc/systemd/system/ssl-reload.target
z następującą zawartością.Następnie utwórz kolejny plik:
/etc/systemd/system/ssl-reload.path
Następnie:
To powiedziawszy, po zmianie czegoś w katalogu SSL, pożądane usługi powinny zostać ponownie załadowane automatycznie.
jeśli nie chcesz automatycznego zachowania, nie używaj
.path
pliku i po prostu wydajsystemctl reload ssl-reload.target
ręcznie po zmianie plików SSL.źródło