लिनक्स में प्रतीक्षा करें कमांड

Wait Command Linux



रुको लिनक्स का एक अंतर्निहित कमांड है जो किसी भी चल रही प्रक्रिया को पूरा करने की प्रतीक्षा करता है। रुको कमांड का उपयोग किसी विशेष प्रक्रिया आईडी या जॉब आईडी के साथ किया जाता है। जब शेल में कई प्रोसेस चल रहे हों तो वर्तमान शेल द्वारा केवल अंतिम कमांड की प्रोसेस आईडी जानी जाएगी। यदि इस बार वेट कमांड को निष्पादित किया जाता है, तो इसे अंतिम कमांड के लिए लागू किया जाएगा। यदि प्रतीक्षा कमांड के साथ कोई प्रोसेस आईडी या जॉब आईडी नहीं दी जाती है तो यह सभी मौजूदा चाइल्ड प्रोसेस के पूरा होने का इंतजार करेगा और एग्जिट स्टेटस लौटाएगा।

प्रतीक्षा आदेश का निकास स्थिति मान निर्दिष्ट अंतिम संकार्य द्वारा इंगित आदेश पर निर्भर करता है। जब कोई प्रक्रिया असामान्य रूप से समाप्त हो जाती है तो बाहर निकलने की स्थिति 128 से अधिक होगी और अन्य आदेशों के निकास स्थिति मूल्यों से अलग होगी। रुको कमांड मान 0 के साथ बाहर निकलता है जब यह बिना ऑपरेंड के कॉल करता है और सभी प्रक्रिया आईडी को वर्तमान शेल द्वारा समाप्त कर दिया गया है। यदि प्रतीक्षा कमांड किसी त्रुटि का पता लगाता है तो यह 1 से 126 तक कोई भी मान देता है। यदि अंतिम प्रक्रिया आईडी अज्ञात है तो प्रतीक्षा आदेश 127 मान के साथ बाहर निकलता है। आप लिनक्स में प्रतीक्षा कमांड का उपयोग कैसे कर सकते हैं इस ट्यूटोरियल में दिखाया गया है।







उदाहरण -1: कई प्रक्रियाओं के लिए प्रतीक्षा कमांड का उपयोग करना

निम्नलिखित स्क्रिप्ट को निष्पादित करने के बाद, पृष्ठभूमि में दो प्रक्रियाएं चलेंगी और पहले इको कमांड की प्रक्रिया आईडी $process_id चर में संग्रहीत की जाती है। जब प्रतीक्षा कमांड को $process_id के साथ निष्पादित किया जाता है तो अगला कमांड पहले इको कमांड के कार्य को पूरा करने के लिए प्रतीक्षा करेगा। दूसरी प्रतीक्षा कमांड का प्रयोग 'के साथ किया जाता है $! ' और यह अंतिम चल रही प्रक्रिया की प्रक्रिया आईडी को इंगित करता है। ' $? ' प्रतीक्षा आदेश के स्थिति मान को पढ़ने के लिए प्रयोग किया जाता है।



#!/बिन/बैश
फेंक दिया 'परीक्षण प्रतीक्षा आदेश1' और
प्रक्रिया_आईडी=$!
फेंक दिया 'परीक्षण प्रतीक्षा आदेश 2' और
रुको $process_id
फेंक दियाकाम1स्थिति के साथ बाहर निकल गया$?
रुको $!
फेंक दियाकाम2स्थिति के साथ बाहर निकल गया$?

आउटपुट:



$दे घुमा केप्रतीक्षा १.शो





उदाहरण -2: किल कमांड का उपयोग करने के बाद प्रतीक्षा कमांड का परीक्षण करें

निम्नलिखित स्क्रिप्ट में, प्रक्रिया को समाप्त करने के बाद प्रतीक्षा आदेश निष्पादित किया जाता है। स्लीप कमांड एक बैकग्राउंड प्रोसेस के रूप में चल रहा है और रनिंग प्रोसेस को खत्म करने के लिए किल कमांड को एक्जीक्यूट किया जाता है। उसके बाद वेट कमांड को टर्मिनेटेड प्रोसेस की प्रोसेस आईडी के साथ एक्सीक्यूट किया जाता है। आउटपुट समाप्त प्रक्रिया की प्रक्रिया आईडी दिखाएगा।

#!/बिन/बैश
फेंक दिया 'परीक्षण प्रतीक्षा आदेश'
नींद बीस और
पीआईडी=$!
मार $pid
रुको $pid
फेंक दिया $pidसमाप्त कर दिया गया था।

आउटपुट:



$दे घुमा केप्रतीक्षा २.शो

उदाहरण -3: निकास स्थिति मान की जाँच करें

निम्नलिखित स्क्रिप्ट में, फ़ंक्शन जाँच() दो तर्क मूल्यों द्वारा कहा जाता है। ट्यूटोरियल की शुरुआत में यह चर्चा की जाती है कि यदि प्रतीक्षा आदेश सफलतापूर्वक निष्पादित होता है तो निकास मान 0 होगा और यदि प्रतीक्षा आदेश किसी त्रुटि का पता लगाता है तो यह 1 और 126 के बीच कोई भी मान लौटाएगा। स्क्रिप्ट चलाने के बाद, यदि आप 0 को दूसरे तर्क के रूप में पास करते हैं value तब प्रतीक्षा आदेश सफलतापूर्वक समाप्त हो जाता है और यदि आप शून्य से अधिक कोई मान पास करते हैं तो यह असफल रूप से समाप्त हो जाता है।

#!/बिन/बैश
समारोहजाँच()
{
फेंक दिया '$ 1 सेकंड के लिए सोएं'
नींद $ 1
बाहर जाएं $ 2
}
जाँच$ 1 $ 2 और
बी=$!
फेंक दिया 'स्थिति की जांच'
रुको $बी && फेंक दियाठीक है|| फेंक दियाठीक नहीं है

आउटपुट:

$दे घुमा केWait3.sh3 0
$दे घुमा केWait3.sh3 5

आशा है, यह ट्यूटोरियल उपयोग प्रतीक्षा कमांड को ठीक से सीखने में मदद करेगा। Linux में एक और कमांड है, जिसका नाम है नींद निश्चित समय की प्रतीक्षा करने के लिए लेकिन इन आदेशों के बीच कुछ अंतर हैं। यदि आप इसके बारे में जानना चाहते हैं स्लीप कमांड तो आप इस लिंक पर जा सकते हैं।