История изменений
Исправление intelfx, (текущая версия) :
как заставить пользовательские systemd, что бы он запускал определенные процессы перед запуском других процессов?
Расставить Before=
/After=
между требуемыми юнитами. Другого не дано.
все равно все target’ы стартуют одновременно, а надо сначала, что бы запустился resque-first.target, а потом уже resque-metro.target и resque-prisma.target
Ты не въезжаешь в семантику зависимостей в systemd. Зависимости порядка не «наследуются» между юнитами.
Если у тебя есть A.target
, который зависит от a.service
, а также B.target
, который зависит от b.service
и A.target
, и ты запускаешь B.target
, то в этом графе зависимостей ничего не говорит о взаимном порядке запуска a.service
и b.service
. systemd не будет ждать успешного запуска A.target
перед тем, как запускать b.service
. В результате a.service
и b.service
стартуют одновременно.
Короче, возьми бумажку и нарисуй направленный граф зависимостей между всеми твоими юнитами, а потом посмотри, получился ли между твоими сервисами хотя бы один направленный путь.
Исправление intelfx, :
как заставить пользовательские systemd, что бы он запускал определенные процессы перед запуском других процессов?
Расставить Before=
/After=
между требуемыми юнитами. Другого не дано.
все равно все target’ы стартуют одновременно, а надо сначала, что бы запустился resque-first.target, а потом уже resque-metro.target и resque-prisma.target
Ты не въезжаешь в семантику зависимостей в systemd. Зависимости порядка не «наследуются» между юнитами.
Если у тебя есть A.target
, который зависит от a.service
, а также B.target
, который зависит от b.service
и A.target
, и ты запускаешь B.target
, то в этом графе зависимостей ничего не говорит о взаимном порядке запуска a.service
и b.service
.
systemd не будет ждать успешного запуска A.target
перед тем, как запускать b.service
. В результате это будет выглядеть как будто a.service
и b.service
стартуют одновременно.
Короче, возьми бумажку и нарисуй направленный граф зависимостей между всеми твоими юнитами, а потом посмотри, получился ли между твоими сервисами хотя бы один направленный путь.
Исходная версия intelfx, :
как заставить пользовательские systemd, что бы он запускал определенные процессы перед запуском других процессов?
Расставить Before=
/After=
между требуемыми юнитами. Другого не дано.
все равно все target’ы стартуют одновременно, а надо сначала, что бы запустился resque-first.target, а потом уже resque-metro.target и resque-prisma.target
Ты не въезжаешь в семантику зависимостей в systemd. Зависимости порядка не «наследуются» между юнитами.
Если у тебя есть A.target
, который зависит от a.service
, а также B.target
, который зависит от b.service
и A.target
, и ты запускаешь B.target
, то в этом графе зависимостей ничего не говорит о взаимном порядке запуска a.service
и b.service
.
systemd не будет ждать успешного запуска A.target
перед тем, как запускать b.service
. В результате это будет выглядеть как будто a.service
и b.service
стартуют одновременно.