Как я могу определить два юнита systemd, чтобы их стоп-порядок отличался от их стартового порядка?
Для проблемы с производительностью у меня оба модуля A и B запускаются одновременно (они оба запускаются после сокета systemd), но модуль A не может остановиться до модуля B
Нет. Если B содержит After=A
, A запускается первым, а B останавливается первым.
Что ожидает диспетчер служб при запуске A, зависит от типа. Укажите возможные типы в systemd.service руководство. В частности, simple
даже не ждет exec (), но forking
ожидает завершения родительского процесса.
Если производительность - это то, что вам нужно, естественно, есть несколько конкурирующих инструментов для определения времени запуска юнитов, systemd-analysis и загрузочная диаграмма. Определите максимальное время запуска, которое вы можете выдержать, а затем измерьте, сколько времени это действительно займет.
Для дальнейших улучшений подробно профилируйте эту вещь и просмотрите ее код.