2010-06-19 22 views
6

İki komut dosyanız var 'S1' ve 'S2'. Ben bu komut dosyalarını &ardışık olarak arka plan işlemleri yürütüyor unix

nohup S1 &

nohup S2 gibi

yürütmek Ama sırayla idam etmeleri istiyoruz. Yani S2, sadece S1'in başarılı bir şekilde tamamlanması üzerine yürütmelidir. Bunu yapmaya nasıl devam etmeliyim? S1'in ne zaman bitirildiğini nasıl bilebilirim? Herhangi bir örnek çok takdir edilecektir. Teşekkürler.

cevap

9

Bunu, sırasıyla, çalıştırabilirsiniz:

(nohup S1 && nohup S2) & 

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

double ampersand operator is described here deneyin.

&&, S2 kullanıldığında, yalnızca S1'un "başarılı" ifadesini bitirdiğini (kod 0) döndürdüğünü unutmayın. Bu istediğin gibi görünüyor. S1'un başarılı olup olmamasına bakmaksızın S2'un çalışmasını istiyorsanız, && yerine ; kullanın.

+0

Çok teşekkürler! Bunu kontrol edeceğim. – wowrt

+0

Merhaba, stephen! Bu soruyla bana yardım eder misiniz? 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? Çok minnettar olacağım. – user15964