2010-06-19 4 views
6

У меня есть два сценария: «S1» и «S2». Я исполняю эти скрипты,последовательное выполнение фоновых процессов unix

поЬир S1 &

поЬир S2 &

Но я хотел бы, чтобы они выполняются последовательно. т.е. S2 должен выполняться только при успешном завершении S1. Как я должен это делать ?. Как узнать, когда S1 завершит выполнение ?. Любые примеры будут высоко оценены. Благодарю.

ответ

9

Вы можете выполнять их последовательно, как это:

(nohup S1 && nohup S2) & 

Попробуйте

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

double ampersand operator is described here.

Обратите внимание, что при использовании &&, S2 работает только в том случае, если S1 заканчивает «успешно» (код возврата 0). Кажется, это то, что вы хотели. Если вы хотите, чтобы S2 выполнялся независимо от того, успешно ли S1, используйте ; вместо &&.

+0

Спасибо большое !. Я проверю это. – wowrt

+0

привет, Stephen! Не могли бы вы помочь мне с этим вопросом? Http://unix.stackexchange.com/questions/101411/how-to-run-new-background-command-sequential-if-i-already-have-a-nohup-backgro/ 101421? Noredirect = 1 # comment154602_101421? Я буду очень признателен. – user15964

Смежные вопросы