Một tiến trình kế thừa một môi trường từ tiến trình cha khởi động nó. Để thay đổi PATH hoặc các giá trị môi trường khác ở trẻ, chúng ta có thể đặt biến thành giá trị trong cha mẹ và xuất biến nếu chúng ta ở trong vỏ, sau đó bắt đầu quá trình con. Đứa trẻ cũng có thể đọc một hoặc nhiều tệp khởi tạo để thay đổi môi trường của chính nó khi nó bắt đầu.
Vì vậy, có hai câu hỏi nữa để có câu trả lời:
Cây thừa kế cha / con dẫn đến quá trình mà bạn muốn bị ảnh hưởng bởi PATH hoặc thay đổi môi trường là gì?
Những tập tin khởi tạo nào được sử dụng / đọc / có nguồn gốc bởi các quy trình có liên quan trong cây đó?
Đây là một phần của đầu ra của ps (1) để hiển thị ý của tôi về cây thừa kế:
# /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 ...
Lưu ý \ _ trình tự đồ họa và số PIP / PPID (ID tiến trình và PID gốc). PID 1855 được bắt đầu bởi (một số đứa trẻ của?) 1497, được bắt đầu vào năm 1481, được bắt đầu bởi PID 1, được bắt đầu bởi quá trình tổ tiên 0.
Thực hiện theo dõi thừa kế tương tự cho quá trình bạn muốn ảnh hưởng, tìm ra các tệp khởi tạo nào có liên quan và thực hiện thay đổi thành PATH ở đâu đó trong cây đó, có thể có nội dung tương tự:
PATH=${PATH}:/usr/local/bin
~/.pam_environment
giải pháp là theo mặc định, mô-đun pam_env không đọc nó, trừ khi phân phối cấu hình nó theo cách khác. Trên Fedora 20, nó không được đọc.