กระบวนการสืบทอดสภาพแวดล้อมจากกระบวนการหลักที่เริ่มต้นกระบวนการ หากต้องการเปลี่ยน PATH หรือค่าสภาพแวดล้อมอื่น ๆ ในชายด์เราสามารถตั้งค่าตัวแปรให้เป็นค่าในพาเรนต์และส่งออกตัวแปรหากเราอยู่ในเชลล์แล้วเริ่มกระบวนการลูก เด็กอาจอ่านไฟล์เริ่มต้นอย่างน้อยหนึ่งไฟล์เพื่อเปลี่ยนสภาพแวดล้อมของตนเองเมื่อเริ่มทำงาน
ดังนั้นมีคำถามอีกสองคำถามเพื่อให้ได้คำตอบ:
แผนผังการสืบทอดพาเรนต์ / ลูกที่นำไปสู่กระบวนการที่คุณต้องการได้รับผลกระทบจาก PATH หรือการเปลี่ยนแปลงสภาพแวดล้อมคืออะไร?
ไฟล์การเริ่มต้นใดที่ใช้ / อ่าน / มาจากกระบวนการที่เกี่ยวข้องในทรีนั้น
นี่เป็นส่วนหนึ่งของผลลัพธ์ของ ps (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 (ID กระบวนการและ PID หลัก) PID 1855 เริ่มต้นโดย (ลูกบางคนของ) 1497 ซึ่งเริ่มโดย 1481 ซึ่งเริ่มโดย PID 1 ซึ่งเริ่มต้นโดยกระบวนการบรรพบุรุษ 0
ทำการติดตามการสืบทอดที่คล้ายกันสำหรับกระบวนการที่คุณต้องการส่งผลให้คิดว่าไฟล์การเริ่มต้นใดที่เกี่ยวข้องและทำการเปลี่ยนแปลง PATH ในต้นไม้ต้นนั้นซึ่งอาจมีบางสิ่งที่คล้ายกับ:
PATH=${PATH}:/usr/local/bin
~/.pam_environment
แก้ปัญหาคือโดยปกติแล้วโมดูลpam_envจะไม่อ่านยกเว้นว่าการกระจายจะกำหนดไว้เป็นอย่างอื่น ใน Fedora 20 ยังไม่ได้อ่านตัวอย่าง