2010-06-19 18 views
6

Tengo dos scripts que dicen 'S1' y 'S2'. Ejecuto estas secuencias de comandos como,ejecución secuencial de procesos en segundo plano Unix

nohup S1 &

nohup S2 &

Pero me gustaría que para ejecutar secuencialmente. es decir, S2 debería ejecutarse solo al completar satisfactoriamente S1. ¿Cómo debo hacer esto? ¿Cómo puedo saber cuándo S1 termina la ejecución ?. Cualquier ejemplo sería muy apreciado. Gracias.

Respuesta

9

Puede ejecutarlos, secuencialmente, de esta manera:

(nohup S1 && nohup S2) & 

Trate

(echo 1 && sleep 1 && echo 2) & 

El double ampersand operator is described here.

Tenga en cuenta que al utilizar &&, S2 solo se ejecuta si S1 finaliza "con éxito" (código de retorno 0). Esto parece ser lo que querías. Si desea que S2 se ejecute independientemente de si S1 tiene éxito, use ; en lugar de &&.

+0

¡Muchas gracias !. Lo comprobaré. – wowrt

+0

hola, stephen! ¿Podría ayudarme con esta pregunta? Http://unix.stackexchange.com/questions/101411/how-to-run-new-background-command-sequentially-if-i-already-have-a-nohup-backgro/ 101421? Noredirect = 1 # comment154602_101421? Seré muy apreciado. – user15964

Cuestiones relacionadas