Estoy usando la función de tiempo de espera en Debian para esperar 5 segundos para mi script. Funciona muy bien, pero el problema que tengo es que necesito un valor de retorno. Como 1 para el tiempo de espera y 0 sin tiempo de espera. ¿Cómo voy a hacer esto?
Echa un vistazo a mi código:
timeout 5 /some/local/script/connect_script -x 'status' > output.txt
# here i need the return of timeout
Como puede ver mi connect_script -x 'status' devuelve el estado como una cadena e imprime en la pantalla (probablemente no pueda ver esto) El fondo de este problema es que si el servidor (para connect_script) se congela, el script no hace nada . Es por eso que necesito el tiempo de espera alrededor de eso. Y cuando se agota el tiempo de espera, quiero reiniciar el servidor. Puedo hacer eso, pero no tengo idea de cómo puedo ver si es tiempo de espera o no ...
fuente
Según el manual (
man timeout
):Combine esto con el conocimiento de que el estado de salida o el valor de retorno se almacenan en la variable
$?
, y tenemos ...Luego, puede realizar más procesamiento en función del valor de
$RETVAL
, que será 124 si se agota el tiempo de espera, o algún otro valor en función del estado de salida deconnect_script
.fuente
El valor de retorno de
timeout
depende de la señal que use para terminar al niño.SIGTERM
devuelve 124:Pero
SIGKILL
devuelve 137:Ver la página del manual:
fuente