timeout dovrebbe fare al caso tuo.
Comando che resta in esecuzione per
50 secondi (sleep 50) con timeout di
30 secondi:
- valore di ritorno 124, timeout
- tempo effettivamente trascorso prima dell'invio del segnale KILL al comando: 30 secondi
Codice:
gimli@sertan ~ $ timeout -k 30.0s 30.0s sleep 50
gimli@sertan ~ $ echo $?
124
gimli@sertan ~ $ time timeout -k 30.0s 30.0s sleep 50
real 0m30.001s
user 0m0.000s
sys 0m0.000s
Comando che resta in esecuzione per
10 secondi (sleep 10) con timeout di
30 secondi:
- valore di ritorno 0, vale a dire il valore di ritorno di sleep, terminato con successo dopo 10 secondi
Codice:
gimli@sertan ~ $ timeout -k 30.0s 30.0s sleep 10
gimli@sertan ~ $ echo $?
0