Czy jest sposób, aby systemd
mi powiedzieć , w jakiej przybliżonej kolejności będzie zamykać usługi, gdy całkowicie zamknę cały system? Ponieważ systemd
równolegle wyłączy się, doceniam, że nie ma sposobu, aby poznać dokładną kolejność, ale nadal bardzo pomocne byłoby wiedzieć, jakie ograniczenia systemd
nałożą na sekwencję wyłączania, najlepiej w postaci łatwej do zrozumienia wizualizacji.
Motywacja polega na tym, że przy opracowywaniu i debugowaniu plików serwisowych znacznie wygodniej byłoby uzyskać tę przewidywaną listę z wyprzedzeniem, niż robić prawdziwe zamknięcie, a następnie ponownie uruchamiać się i sprawdzać dzienniki za każdym razem, gdy chcę ustalić jaki wpływ na zmianę w pliku jednostki serwisowej lub inny aspekt konfiguracji systemd będzie miał na polecenie zamknięcia.
Miałem nadzieję, że coś takiego
systemctl list-dependencies --before shutdown.service
wykonałby zadanie, ale emituje tylko:
shutdown.service
źródło
shutdown.target
nie jestshutdown.service
. Jednak wciąż nie daje mi to zamówionej listy, o którą prosiłem, ale zamiast tego daje mi bardzo krótką listę, a nawet pustą w niektórych systemach.systemctl list-dependencies --after shutdown.target
... przynajmniej znajdzie wszystko, czego nie ma pierwsze polecenie. Jest również mylące, ponieważshutdown.target
jest począwszy , ale wszystkie pozostałe jednostki są zatrzymując się , aw tym przypadku nie ma znaczenia, czy masz „przed” i „po” zamawiającego; zatrzymanie odbywa się przed rozpoczęciem w obu przypadkach.Kolejność zamykania jest zwykle odwrotnością kolejności uruchamiania.
To powiedziawszy, wszystkie demony są wysyłane sygnał wyłączenia i zajmie różną ilość czasu, aby faktycznie zamknąć i wyjść.
Przechodząc do zwykłego systemd, nie sądzę, aby można było pożytecznie przewidzieć, które usługi zakończą w jakiej kolejności. Ponadto zależności kontrolują niektóre sekwencje.
źródło