एक प्रसिद्ध कार्यक्रम के STDOUT को कहाँ निर्देशित किया गया है?


11

इस प्रश्न के अनुवर्ती के रूप में , मैं जानना चाहूंगा कि मैंने जिस कार्यक्रम को चलाया disown -hहै, उसके STDOUT और STDERR को कहां पर पुनर्निर्देशित किया गया है।

जवाबों:


10

disownकार्यक्रम STDOUT / ERR नहीं बदलता है। वे अभी भी जहाँ भी आप उन्हें (उपयोग >आदि) पुनर्निर्देशित करेंगे । यदि आपने उन्हें रीडायरेक्ट नहीं किया है, तो वे उस टर्मिनल में जाना जारी रखेंगे, जिस प्रोग्राम को आपने शुरू किया था (जब तक आप उस टर्मिनल को बंद नहीं करते हैं, जिस स्थिति में उन्हें छोड़ दिया जाएगा)।

वर्णन करने के लिए, इसे एक टर्मिनल में चलाएं:

bash -c 'while true; do sleep 1; echo hi; done' &

यह हर सेकंड "हाय" प्रिंट करेगा (और आपको बहुत गुस्सा दिलाएगा; ;-))। यदि आप disownशुरू करने के बाद कार्यक्रम करते हैं, तो "हाय" बस जारी रहेगा। आपको शेल के पीआईडी ​​(उदाहरण पीएस का उपयोग करके) को खोजने और इसे रोकने के लिए इसे मारने की आवश्यकता है।

संपादित करें:

टिप्पणियों के आधार पर, हो सकता है कि आप वास्तव में क्या करना चाहते हैं, प्रोग्राम के आउटपुट को पुनर्प्राप्त करने के बाद आप disownइसे संपादित करें और टर्मिनल को बंद कर रहे थे। यह इस प्रश्न में समझाया गया है: tcsh के साथ दूरस्थ nohup के बाद ( धन्यवाद quixote करने के लिए)।


उनके पिछले प्रश्न के अनुसार, तथ्य यह है कि उन्होंने इस पिछले टर्मिनल को बंद कर दिया है। वह आउटपुट कैसे प्राप्त कर सकता है, फिर?
ग्नूपी

@Gnoupi: मुझे नहीं लगता कि आउटपुट वापस पाने का कोई तरीका है। कम से कम मैंने कभी कोई रास्ता नहीं सुना।
सलेस्के

Gnoupi टिप्पणी के लिए धन्यवाद :-) तथ्यों में, आउटपुट कहीं नहीं पाया जाता है। मैं हालांकि :-) देखते रहेंगे
Thrawn

1
यह वास्तव में उत्तर है: अव्यवस्थित कुछ भी नहीं बदलता है; जब आप प्रक्रिया शुरू करते हैं तो आपको किसी भी कैप्चर या पुनर्निर्देशन को सेटअप करने की आवश्यकता होती है । अगर आपको इसकी आवश्यकता है, तो gdb आपका (केवल) मित्र है: superuser.com/questions/50058/…
quack quixote

@quack - मैं कहूंगा कि प्रश्न को केवल उपकरण के बजाय वास्तविक उपयोग के मामले पर जोर देने के लिए रिफैक्टिंग की आवश्यकता है। वर्तमान रूप में (विच्छेदित पर केंद्रित), यह वास्तव में सही उत्तर है। लेकिन संदर्भ से, पिछले प्रश्न के साथ, उपयोगकर्ता बस आउटपुट को पुनर्प्राप्त करना चाहता है, और इस मामले में आपका लिंक उत्तर है।
ग्नूपी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.