एक प्रक्रिया मूल प्रक्रिया से एक वातावरण प्राप्त करती है जो इसे शुरू करती है। एक बच्चे में पीएटीएच या अन्य पर्यावरण मूल्यों को बदलने के लिए, हम माता-पिता में एक मूल्य के लिए एक चर सेट कर सकते हैं, और चर का निर्यात कर सकते हैं यदि हम एक शेल में हैं, और फिर बच्चे की प्रक्रिया शुरू करें। बच्चा अपने परिवेश को शुरू करने के लिए एक या एक से अधिक आरंभीकरण फ़ाइलें भी पढ़ सकता है।
तो, उत्तर पाने के लिए दो और प्रश्न हैं:
पेरेंट / चाइल्ड इनहेरिटेंस ट्री क्या है जो उस प्रक्रिया की ओर जाता है जिसे आप पैथ या पर्यावरण परिवर्तन से प्रभावित करना चाहते हैं?
उस पेड़ में संबंधित प्रक्रियाओं द्वारा आरंभिक फ़ाइलों का क्या उपयोग किया जाता है / पढ़ा जाता है?
यहाँ पीएस (1) के उत्पादन का एक हिस्सा है जो यह दर्शाता है कि मुझे विरासत के पेड़ से क्या मतलब है:
# /bin/ps -o 'uid:5,pid:5,ppid:5,user:4,args' axf
UID PID PPID USER COMMAND
0 1 0 root /usr/lib/systemd/systemd
0 1481 1 root /usr/sbin/gdm-binary -nodaemon
0 1497 1481 root \_ /usr/libexec/gdm-simple-slave ...
0 1504 1497 root \_ /usr/bin/Xorg :0 ...
0 1855 1497 root \_ gdm-session-worker ...
\ _ ग्राफिक सीक्वेंस और PIP / PPID नंबर (प्रोसेस आईडी और पेरेंट PID) पर ध्यान दें। PID 1855 की शुरुआत (14 के कुछ बच्चे?) 1497 द्वारा की गई थी, जिसे 1481 द्वारा शुरू किया गया था, जिसे PID 1 द्वारा शुरू किया गया था, जो कि पूर्वज प्रक्रिया 0 द्वारा शुरू किया गया था।
आप जिस प्रक्रिया को प्रभावित करना चाहते हैं, उसके लिए एक समान विरासत का पता लगाएँ, यह पता लगाएँ कि कौन सी आरंभीकरण फ़ाइलें प्रासंगिक हैं, और उस पेड़ में कहीं-कहीं पाथ का परिवर्तन कर सकते हैं, शायद कुछ इसी तरह के साथ:
PATH=${PATH}:/usr/local/bin
~/.pam_environment
समाधान के साथ समस्या यह है कि डिफ़ॉल्ट रूप से pam_env मॉड्यूल इसे नहीं पढ़ता है, जब तक कि वितरण इसे अन्यथा कॉन्फ़िगर नहीं करता है। फेडोरा 20 पर इसे उदाहरण के लिए नहीं पढ़ा गया है।