Existe uma maneira de garantir que apenas uma instância de systemd @ .service esteja executando resp. começa

4

Gostaria de usar um arquivo .service para iniciar um serviço de vários diretórios, mas seria interessante se houvesse uma maneira de parar automaticamente qualquer instância em execução com um nome de instância diferente (ou até mesmo o mesmo) ou pelo menos para evitar iniciar uma segunda instância.

Digamos que eu tenha um arquivo de unidade [email protected] que contém

WorkingDirectory=/var/special_service/%i

e, em seguida, chame systemctl start special_service@try_one e, posteriormente, emita systemctl start special_service@try_two , e essa segunda instância não deverá começar com uma mensagem apropriada ou, melhor ainda, parar special_service@try_one e iniciar special_service@try_two .

    
por TNT 08.03.2014 / 14:39

1 resposta

0

O próprio systemd não tem essas possibilidades. Você pode envolver seu binário em um script de shell que cria / detecta um arquivo de trava e escreve um script de shell extra que o remove (para executar em ExecStopPost= ).

Lembre-se apenas de exec do binário real no final, para não deixar um processo extra por trás.

    
por 27.12.2014 / 23:42

Tags