LINUX.ORG.RU

История изменений

Исправление 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 стартуют одновременно.