2010-06-19 21 views
6

मेरे पास दो स्क्रिप्ट्स 'एस 1' और 'एस 2' कहती हैं। मैं इन लिपियों के रूप में,अनुक्रमिक रूप से पृष्ठभूमि प्रक्रियाओं को निष्पादित करता है यूनिक्स

nohup एस 1 &

nohup एस 2 &

निष्पादित लेकिन मैं उन्हें पसंद क्रमिक रूप से निष्पादित करने के लिए होगा। यानी, एस 2 को केवल एस 1 के सफल समापन पर निष्पादित करना चाहिए। मै यह कैसे कर सकता हूँ?। एस 1 कब निष्पादन खत्म करता है मुझे कैसे पता चलेगा? किसी भी उदाहरण की सराहना की जाएगी। धन्यवाद।

उत्तर

9

आप उन्हें निष्पादित कर सकते हैं, क्रमिक रूप से, इस तरह:

(nohup S1 && nohup S2) & 

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

double ampersand operator is described here की कोशिश करो।

ध्यान दें कि &&, S2 का उपयोग करते समय केवल S1 "सफलतापूर्वक" समाप्त होता है (कोड 0 लौटाएं)। ऐसा लगता है कि आप क्या चाहते थे। S1 सफल होने के बावजूद S2 चाहे आप ;&& के बजाय S2 चाहते हैं।

+0

बहुत बहुत धन्यवाद! मैं इसे देख लूंगा। – wowrt

+0

हाय, स्टीफन! क्या आप कृपया इस प्रश्न के साथ मेरी मदद करेंगे http://unix.stackexchange.com/questions/101411/how-to-run-new-background-command-sequentially-if-i-already-have-a-nohup-backgro/ 101421? Noredirect = 1 # टिप्पणी 154602_101421? मैं बहुत सराहना करता हूँ। – user15964