Я написал около полдюжины .service
файлов для разных частей, из которых состоит система, над которой я работаю. Полезно иметь возможность запустить всю систему по частям, но я также хотел бы иметь один модуль, который запускает всю систему за один вызов systemctl
.
Какой лучший способ сделать это?
WantedBy
ключ в[Install]
разделе и отметить уже существующую цель. Например, если вы хотите, чтобы ваши службы всегда запускались до входа других пользователей, используйтеmulti-user.target
.Wants=
перечислением всех сервисов кажется достаточным для запуска , однако я не могу найти способ заставить остановку и перезапуск работать с использованием целевого типа. Есть тип, который позволяет это?.target
можно с помощьюStopWhenUnneeded=yes
каждого.service
файла. superuser.com/questions/470153/….target
и для остановки, которую я используюsystemctl stop foo.\*
(поскольку все задействованные сервисы имеют служебные файлы, начинающиеся с остроумияfoo.
).Вы пробовали использовать
PartOf
в подразделениях целевой группы в дополнение кWants
цели? Пример:PartOf=foo.target
вfoo-sub1.service
иWants=foo-sub1.service foo-sub2.service
вfoo.target
. Я только что попробовал это и смог запустить и остановить все мои подразделения, просто запустив и остановив цель.источник