Eu quero executar um script de shell que tenha um loop nele e ele pode durar para sempre, o que eu não quero que aconteça. Então, preciso introduzir um tempo limite para todo o script.
Como posso introduzir um tempo limite para todo o shell script no SuSE?
shell-script
timeout
Radek
fonte
fonte
timeout
ouexpect
)Respostas:
Se o GNU
timeout
não estiver disponível, você poderá usá-loexpect
(Mac OS X, BSD, ... normalmente não possui ferramentas e utilitários GNU por padrão).Editar exemplo:
fonte
timeout
si é 124 no caso de um tempo limite, caso contrário, é o status de retorno do comando (isso é mencionado na resposta de Tim Kennedy).Obrigado pelo esclarecimento.
A maneira mais fácil de realizar o que você procura é executar seu script com o loop dentro de um wrapper como o
timeout
comando do pacote GNU Coreutils.No final, será muito mais fácil do que escrever sua própria função de tempo limite, que os shells tendem a não ter sido incorporados.
fonte
gtimeout
na minha instalação (OSX).Inicie um processo de watchdog de dentro do seu script para eliminar o pai, se ele demorar muito. Exemplo:
Este script será encerrado pelo cão de guarda após cinco segundos.
fonte
Há também
cratimeout
de Martin Cracauer.fonte
fonte