Назад | Перейти на главную страницу

Остановить юниты systemd в другом порядке, чем запуск

Как я могу определить два юнита systemd, чтобы их стоп-порядок отличался от их стартового порядка?

Для проблемы с производительностью у меня оба модуля A и B запускаются одновременно (они оба запускаются после сокета systemd), но модуль A не может остановиться до модуля B

Нет. Если B содержит After=A, A запускается первым, а B останавливается первым.

Что ожидает диспетчер служб при запуске A, зависит от типа. Укажите возможные типы в systemd.service руководство. В частности, simple даже не ждет exec (), но forking ожидает завершения родительского процесса.

Если производительность - это то, что вам нужно, естественно, есть несколько конкурирующих инструментов для определения времени запуска юнитов, systemd-analysis и загрузочная диаграмма. Определите максимальное время запуска, которое вы можете выдержать, а затем измерьте, сколько времени это действительно займет.

Для дальнейших улучшений подробно профилируйте эту вещь и просмотрите ее код.