Sunday 15 January 2012

unix - How to get the proper exit code from nohup -


जानकारी कोरुतिल्स 'नोहूप इनवॉलेशन' में नोहूप दस्तावेज से यह बताता है: < पूर्व> बाहर निकलने की स्थिति: 125 अगर `नोहूप 'स्वयं विफल हो जाती है, और' पॉसिक्सली_CORRECT '126 सेट नहीं है, यदि कमांड मिला है लेकिन 127 को आवेदित नहीं किया जा सकता है, तो COMMAND को COMMAND के बाहर निकलने की स्थिति नहीं मिल सकती अन्यथा

हालांकि, मैं केवल नोहूप से प्राप्त किए गए केवल बाहर निकलने वाले कोड 1 और 0 कर चुके हैं। मेरे पास एक नोहुप कमांड है जो कि किसी स्क्रिप्ट के भीतर से असफल है, और मुझे अपवाद की उचितता है ... और इस दस्तावेज के आधार पर मुझे लगता है कि नोहअप निकास कोड होना चाहिए 126 होना चाहिए। इसके बजाए, यह 0 है।

मैं चला रहा हूँ, जो कमांड है: nohup perl myscript.pl & amp;

क्या ऐसा इसलिए है क्योंकि पर्ल सफलतापूर्वक निकल रहा है?

यदि आपका खोल स्क्रिप्ट के साथ इस प्रक्रिया को चलाता है:

  नोहुप पर्ल myscript.pl & amp;   

आप कम से कम nohup से बाहर निकलने की स्थिति को इकट्ठा करने का मौका छोड़ देते हैं। पूर्ण रूप से कमांड 0 के साथ सफल हो जाती है यदि शेल फोर्क करने में विफल रहता है और शेल 1 में विफल रहता है। bash में, आप पृष्ठभूमि प्रक्रिया की प्रतीक्षा कर सकते हैं और इसकी स्थिति को wait :

  via nohup perl myscript.pl & amp; oldpid = $! ... कुछ और करो या इस पूरे रिगारमोल को व्यर्थ है ... रुको $ oldpid $ गूंज ...   

प्रतिध्वनित $? आमतौर पर निर्दिष्ट पीआईडी ​​के बाहर निकलने की स्थिति है (जब तक कि निर्दिष्ट पीआईडी ​​पहले ही मर गया हो और इसके लिए इंतजार किया गया हो।) < P> यदि आप प्रक्रिया को सिंक्रोनस से चलाते हैं, तो आप अलग से बाहर निकलने की स्थिति का पता लगा सकते हैं:

  (nohup perl myscript.pl "PID $! स्थिति $ से बाहर निकलती है?" & Gt; & amp; 2) & amp;   

और अब आपको nohup से अलग निकास स्थितियों को हाजिर करने में सक्षम होना चाहिए (उदाहरण के लिए अलग-अलग गलत वर्तनी की कोशिश करें: nohup pearl myscript.pl , आदि)।

ध्यान दें कि पूरे के रूप में उप-शॉटल पृष्ठभूमि में चलाया जाता है, लेकिन नोहूप उप-शेल के भीतर synchronously चलाया जाता है।

< / div>

No comments:

Post a Comment