Faça comandos do script de shell para abortar após determinado tempo limite

2

Muitas vezes tenho uma situação nos scripts de shell do Linux que, se um comando específico demorar muito para ser executado, por exemplo, devido a um problema de rede, o script de shell deve anular a execução deste comando.

Quais são as melhores práticas para executar os comandos timeoutting em um shell script? Por exemplo. executar comandos através de algum tipo de comando de monitoramento com determinado tempo máximo de execução dado como segundos?

o que estou procurando é ter algo como "timeout -s 300 'nesta linha de comando'"

As soluções do Cron estão fora de questão e não são respostas acertadas.

    
por Mikko Ohtamaa 26.11.2012 / 09:07

1 resposta

1

Existe um pacote chamado timeout, baseado no debian sudo apt-get install timeout. O problema é que o comando tem apenas o tempo alocado para ser executado, então se você estiver ssh'ing e timeout 300 ssh [email protected], a tarefa será eliminada após 300 segundos. Dito isto, havia uma questão semelhante no StackOverflow com uma implementação de script aqui que poderia fazê-lo.

Embora eu tenha tentado isso ontem novamente e estava tudo bem, então depende de qual comando o segue.

    
por 26.11.2012 / 17:06