2010-06-19 13 views
6

Mam dwa skrypty z napisem "S1" i "S2". I wykonać te skrypty jaksekwencyjne wykonywanie procesów w tle uniksowych

nohup S1 &

nohup S2 &

Ale chciałbym je wykonać sekwencyjnie. tj., S2 powinno być wykonywane tylko po pomyślnym zakończeniu S1. Jak powinienem to zrobić? Skąd mam wiedzieć, kiedy S1 zakończy wykonywanie? Wszelkie przykłady byłyby mile widziane. Dzięki.

Odpowiedz

9

Można je wykonać sekwencyjnie, tak:

(nohup S1 && nohup S2) & 

Spróbuj

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

double ampersand operator is described here.

Należy pamiętać, że podczas korzystania z &&, S2 działa tylko, gdy S1 kończy "pomyślnie" (kod powrotu 0). To wydaje się być tym, czego chciałeś. Jeśli chcesz, aby S2 działał niezależnie od tego, czy S1 się powiedzie, użyj ; zamiast &&.

+0

Wielkie dzięki !. Sprawdzę to. – wowrt

+0

cześć, Stephen! Czy pomożecie mi w tym zadaniu http://unix.stackexchange.com/questions/101411/how-to-run-new-background- commommand-sequentially-if-i-already-have-a-nohup-backgro/ 101421? Noredirect = 1 # comment154602_101421? Będę bardzo wdzięczny. – user15964

Powiązane problemy