Tengo el siguiente script bash, podemos llamarlo script1.sh
:¿Cómo comprobar si un trabajo en segundo plano está activo? (Bash)
#!/bin/bash
exec ./script2.sh &
sleep 5
if job1 is alive then #<--- this line is pseudo-code!
exec ./script3.sh &
wait
fi
Como puede verse, el script se ejecuta script2.sh
como un trabajo en segundo plano y espera 5 segundos (por lo script2.sh
puede hacer algo de inicialización cosas). Si la inicialización tiene éxito, el trabajo script2.sh
seguirá vivo, en cuyo caso también deseo iniciar script3.sh
al mismo tiempo; si no, solo quiero dejarlo.
Sin embargo, no sé cómo comprobar si el primer trabajo está vivo, de ahí la línea de pseudocódigo. Entonces, ¿qué debería ir en su lugar?
Ejecutando exec no hará lo que piensas. Reemplazará el proceso actual con un nuevo proceso; No se alcanzarán las líneas posteriores en su script. –