Você pode usar essas opções no trabalho A:
-
Pare antes do serviço dependente
stop on stopping B
-
Comece após o serviço dependido
start on started B
Referência: link
Às vezes, meu servidor é desligado por meio de um desligamento da ACPI e consegui que meu processo seja encerrado normalmente. No entanto, o meu processo (Job A) depende de outro processo (Job B) durante o seu desligamento normal, então agora quero ter certeza de que o Job B não irá parar até que o Job A tenha parado.
Ambos os processos são trabalhos Upstart, então eu tentei fazer isso adicionando isso ao arquivo / etc / init da Tarefa B:
# Don't stop until job A stops
pre-stop script
while true
do
status A | grep -q "stop/waiting" && exit 0
sleep 1
done
end script
Isso não parece funcionar; quando eu desligo meu servidor por meio do desligamento da ACPI, o trabalho B geralmente é desligado antes do trabalho A, de modo que o trabalho A exibe mensagens de erro sobre o trabalho B não estar ativo.
Há algo errado com o meu script? Existe outra abordagem que eu deveria estar tomando? Ou não é possível fazer o que eu quero com o Upstart?
Pergunta relacionada: Como faço para parar um emprego antes de suas dependências?