Як я можу передбачити порядок відключення systemd?


9

Чи є спосіб домогтися systemdсказати мені грубий порядок, в якому він закриє послуги, коли я чисто закрию всю систему? Оскільки systemdбуде паралельно закриватися все, я вдячний, що немає способу дізнатися точний порядок, але все-таки було б дуже корисно дізнатися, які обмеження systemdнакладатимуть на послідовність відключення, бажано в якійсь візуалізації, яку легко зрозуміти.

Мотивація полягає в тому, що для розробки та налагодження службових файлів було б набагато зручніше заздалегідь отримати цей передбачуваний список, а не робити справжнє відключення, а потім знову завантажуватись та перевіряти журнали кожного разу, коли я хочу визначити що вплине на зміну файлу сервісного блоку чи якийсь інший аспект конфігурації systemd на порядок відключення.

Я сподівався, що щось подібне

systemctl list-dependencies --before shutdown.service

зробив би цю роботу, але вона випускає лише:

shutdown.service

Відповіді:


2

Наступне може допомогти вам:

systemctl list-dependencies --before shutdown.target

З повагою,


3
Ну, дякую, що вказали на мою дурну помилку, що це shutdown.targetне так shutdown.service. Однак це все ще не дає мені упорядкованого списку, який я просив, а натомість дає мені дуже короткий список, або навіть порожній у деяких системах.
Адам Шпієр

На жаль, Systemd непрозорий за призначенням. Для стилю oldschool sysvinit, ймовірно, можна додати журнал до запуску-файлів та зареєструвати розпочаті процеси у файлі з часовою позначкою - принаймні, це мені прийшло в голову спочатку.
shevy

1
@AdamSpiers @Mohamed Сальхі в основному "до" означає "починається раніше". Це означає, що потрібна вам команда systemctl list-dependencies --after shutdown.target... принаймні, вона знайде все, що перша команда не робить. Це також оману , тому що shutdown.targetце починає , але всі інші одиниці зупинки , і в даному випадку це не має значення , є чи у вас «до» чи «після» замовлення; зупинка робиться перед початком в обох випадках.
sourcejedi

1

Порядок вимкнення зазвичай є зворотним порядком запуску.

Однак, демони надсилають сигнал вимкнення, і для вимкнення та виходу у нього знадобиться різна кількість часу.

Залишаючись на простоті systemd, я не думаю, що це можливо корисно передбачити, які служби вийдуть у якій послідовності. Далі залежності будуть контролювати деякі послідовності.


1
Правильно - я знав про це через паралельність. Однак мені не потрібен точний порядок - лише те, які замовлення виконуються та які речі потенційно можуть виконуватися паралельно. Я уточню своє запитання, щоб уточнити це. Також ви можете кваліфікувати "зазвичай"? Коли б це не було зворотним?
Адам Шпіерс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.