मुझे पता है कि आउटपुट को रीडायरेक्ट कैसे किया जाता है और कैसे उन्हें बैश में दबाया जाता है। अब, मान लें कि मैं गलती से आउटपुट पुनर्निर्देशन भाग को कमांड (जैसे 2>&1या > /tmp/mystdout) में जोड़ना भूल गया और मेरी पृष्ठभूमि प्रक्रिया पहले से ही थोड़ी देर के लिए चल रही है, क्या मैं अभी भी बदल सकता हूं stdoutऔर कहां stderrलिखा जा रहा है? मैं वास्तव में आवेदन को मारने और पुनः आरंभ नहीं करना चाहूंगा।
गाइल्स द्वारा उनकी टिप्पणी में पूछे गए अधिक विशिष्ट होने के लिए , मैं इन परिदृश्यों में विशिष्ट रूप से इसके साथ जुड़ना चाहूंगा:
- गलत आउटपुट फ़ाइल
- पर पुनर्निर्देशित
stderrकरना भूल गयाstdout
या दोनों का एक संयोजन
जैसे मेरे पास अपाचे चल रहे हैं और मैं फाइल डिस्क्रिप्टर देख सकता हूं :
/proc/8019/fd/0 -> /dev/null
/proc/8019/fd/1 -> /dev/null
/proc/8019/fd/2 -> /var/log/apache2/error.log