%20Execute%20um%20comando%2C%20se%20o%20comando%20n%C3%A3o%20for%20conclu%C3%ADdo%20em%2010%20segundos%2C%20execute%20outro.png)
No Linux (Debian) eu quero:
- Execute um comando.
- Se o comando não for concluído em 10 segundos, elimine-o e tente outro comando.
O caso de uso é:
Eu tenho um serviço daemon que gostaria de encerrar normalmente. Ele pode ser interrompido enviando um comando TCP. Se o comando TCP não retornar, elimine o processo usando Posix HUP.
start-stop-daemon não parece fazer isso, alguém tem alguma dica?
Responder1
Também não dei medalha para o povo debian implementado start-stop-daemon
.
Eu acho que você quer fazer uma solução alternativa para algum daemon. Existe uma ferramenta chamada timeout
no pacote GNU CoreUtils, que poderia ajudar você a fazer isso:
timeout --kill-after=15 --signal=9 this_is_my_command || this_will_run_on_fail
Ele será executado this_is_my_command
e, se atingir o tempo limite, ele será eliminado com o sinal 9 (hard kill) e executará o comando this_will_run_on_fail
.
Eu obtenho essas informações parcialmente deessepergunta.