Tempo limite com 'reinício da rede de serviço'

3

Eu tenho um script rodando no fedora 22 onde eu estou reiniciando a rede de serviços como parte de uma chamada de problema service network restart . Quero verificar se esse comando está demorando demais para ser executado. Se demorar muito, desejo enviar uma mensagem dizendo "Erro ao reiniciar o serviço de rede". Senão eu quero continuar com o roteiro.

    
por LinuxLearner 23.05.2016 / 21:53

2 respostas

5

Você pode usar o comando timeout para executar seu comando ou script em um determinado tempo limite. Algo semelhante a isto:

timeout 10m command 

O que aguarda que o comando termine em 10 minutos, caso contrário, o mata e sai com o status 124. Em seguida, você pode verificar o status de saída de timeout e imprimir a mensagem apropriada com base nele. Veja aqui para saber mais: página de tempo limite.

Se você não quiser matar o comando longo, faça algo assim:

(( sleep $TIMEOUT; echo "command took so long!" ) & exec $COMMAND )

Em TIMEOUT, a mensagem será impressa, mas o comando continuará a ser executado.

    
por 23.05.2016 / 22:14
0

Se você não se importa em editar os scripts originais do sistema, dentro do script você pode criar uma função como

timeoutf(){
    #If hangs 1 minute, dies..
    sleep 1m 
    kill $PPID  
}

timeoutf&
    
por 23.05.2016 / 22:15