2011-12-21 10 views
5

मेरे पास एक स्क्रिप्ट है जो पर्यावरण चर निर्यात करती है और कुछ सबस्क्रिप्ट शुरू करती है।चल रहे प्रक्रिया के पर्यावरण परिवर्तक को बदलना

export LOGLEVEL="1" 
/home/myuser/bin/myscript1.sh 
/home/myuser/bin/myscript2.sh 

LOGLEVEL सबस्क्रिप्ट से प्रक्रियाओं startet लिए उपलब्ध है। मैं पर्यावरण चर LOGLEVEL कैसे बदल सकता हूं?

मैंने चर को export LOGLEVEL="5" के साथ सेट करने का प्रयास किया है लेकिन यह काम नहीं कर रहा है।

+0

के संभावित डुप्लिकेट [वहाँ किसी अन्य प्रक्रिया के वातावरण चर बदलने के लिए एक तरीका है?] (Http://stackoverflow.com/questions/205064/ एक-तरफा-से-बदले-दूसरे-प्रक्रियाओं-पर्यावरण-चर) – thiton

+0

आप कहां चाहते हैं कि LOGLEVEL बदल गया है और किस प्रक्रिया के लिए - जैसा कि आप बताते हैं कि यह दो माइस्क्रिप्ट प्रक्रियाओं के लिए बदल गया है। – Mark

+0

@ मार्क: इससे कोई फर्क नहीं पड़ता कि दोनों सदस्यता की प्रक्रियाओं के लिए LOGLEVEL बदल गया है, या यदि मैं इसे अलग-अलग प्रक्रियाओं के लिए बदल सकता हूं। अनिवार्य रूप से मैं किसी प्रक्रिया से बात करने के किसी भी कामकाजी तरीके की तलाश में हूं, इसे इसके लॉगफाइल में अधिक जानकारी प्रिंट करनी चाहिए। –

उत्तर

11

सामान्य रूप से, प्रक्रिया शुरू होने के समय आप केवल प्रक्रिया के पर्यावरण चर को प्रभावित कर सकते हैं। यदि आपको किसी चल रहे प्रक्रिया में परिवर्तन को संवाद करने की आवश्यकता है, तो पर्यावरण सही उपकरण नहीं है।

हालांकि, this question कुछ जवाब हैं जो इस सीमा को दूर करने के तरीकों का सुझाव देते हैं।

प्रश्न की टिप्पणियों में चर्चा के प्रकाश में जोड़ने के लिए संपादित किया गया: एक चलती प्रक्रिया में कभी-कभी बदलते सेटअप को संचारित करने का एक अच्छा तरीका है एक कॉन्फ़िगरेशन फ़ाइल को निर्दिष्ट करना जहां LOGLEVEL मान सेट है, प्रक्रिया के लिए एक SIGHUP भेजें, और SIGHUP प्राप्त होने पर प्रक्रिया कॉन्फ़िगरेशन फ़ाइल को दोबारा पढ़ें।

+1

लिंक और सुराग के लिए धन्यवाद, इसे सही तरीके से कैसे प्रबंधित करें - मैंने SIGHUP के बारे में और अधिक पढ़ा है और विकिपीडिया पर पाया है: _Daemon प्रोग्राम कभी-कभी स्वयं को पुनरारंभ करने के लिए सिग्नल के रूप में SIGHUP का उपयोग करते हैं, इसके लिए सबसे आम कारण है एक कॉन्फ़िगरेशन फ़ाइल पढ़ें जो बदल गया है –

-2

linux में:

strings –a /proc/<pid_of_the_process>/environ 

या

ps eww <pid_of_the_process> 
+6

वह प्रिंट, प्रश्न संशोधित किया गया था। कोई सहायता नही। – rektide

संबंधित मुद्दे