Есть ли способ, чтобы systemd
сказать мне приблизительный порядок, в котором он будет отключать службы, когда я полностью выключаю всю систему? Поскольку systemd
будет происходить параллельное отключение, я понимаю, что нет никакого способа узнать точный порядок, но все равно было бы очень полезно знать, какие ограничения systemd
будут накладываться на последовательность выключения, предпочтительно в виде визуализации, которую легко понять.
Мотивация заключается в том, что для разработки и отладки служебных файлов было бы гораздо удобнее получить этот прогнозируемый список заранее, чем выполнять реальное завершение работы, а затем снова загружаться и проверять журналы каждый раз, когда я хочу определить Какое влияние на порядок завершения работы будет иметь изменение файла служебного модуля или какого-либо другого аспекта конфигурации systemd.
Я надеялся, что что-то вроде
systemctl list-dependencies --before shutdown.service
будет делать работу, но он только излучает:
shutdown.service
источник
shutdown.target
не такshutdown.service
. Однако это все еще не дает мне упорядоченный список, который я запрашивал, но вместо этого дает мне очень короткий список, или даже пустой, в некоторых системах.systemctl list-dependencies --after shutdown.target
... по крайней мере, которая найдет все, что не делает первая команда. Это также заблуждение , потому чтоshutdown.target
это начинает , но все остальные единицы остановки , и в данном случае это не имеет значения , есть ли у вас «до» или «после» заказа; остановка выполняется перед запуском в обоих случаях.Порядок выключения обычно противоположен порядку запуска.
Тем не менее, все демоны посылают сигнал выключения, и для их выключения и выхода потребуется разное время.
Переходя к простому systemd, я не думаю, что целесообразно предсказать, какие сервисы выйдут в какой последовательности. Кроме того, зависимости будут контролировать некоторые последовательности.
источник