(initscripts) Execute um comando, se o comando não for concluído em 10 segundos, execute outro

(initscripts) Execute um comando, se o comando não for concluído em 10 segundos, execute outro

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 timeoutno 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_commande, 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.

informação relacionada