Eu tenho dois serviços systemd application.service
e [email protected]
.
application.service
está habilitado e normalmente em execução.
[email protected]
não está habilitado e iniciado apenas manualmente e possui uma Conflicts=application.service
entrada.
Eu quero conseguir, que se application.service
estiver rodando e eu iniciar uma instância de [email protected]
, que application service
termine. Isso está funcionando atualmente devido à Conflicts=application.service
entrada mencionada acima.
No entanto, um serviço de sincronização de dados é reiniciado periodicamente application.service
remotamente systemctl restart application.service
. Eu gostaria que isso falhasse se, e somente se, [email protected]
estiver em execução. Atualmente, isso encerrará a [email protected]
instância e iniciará o application.service
. Não encontrei nada relacionado a isso nos documentos oficiais do systemd.
Informações de fundo:
Não posso deixar o serviço remoto verificar [email protected]
porque isso só existe em algumas máquinas (é uma configuração excepcional) e não faz parte da infraestrutura usual. Também não quero interromper o serviço, pois ele também controla outros dispositivos que podem não ser executados [email protected]
.
Tivemos um problema muito semelhante; Eu consideraria esta resposta como a maneira de resolvê-lo; também eu testaria
After=
eBefore=
usariaExecStartPre=