เมื่อลงชื่อเข้าใช้ Mac Lion ของฉันจากระยะไกลผ่านทาง ssh ฉันไม่ได้รับเหมือนกัน PATH ตัวแปรเมื่อฉันเปิดเชลล์ภายใน: เชลล์โลคัลสืบทอดสภาพแวดล้อมตามที่คาดไว้ launchd และดังนั้นจึงมีค่าเส้นทางที่ฉันตั้งไว้ /etc/launchd.conf.
ด้วยเปลือกระยะไกลฉันรู้สึกประหลาดใจ: เมื่อฉันเปิดเปลือกผ่าน ssh มันทำ ไม่ สืบทอดตัวแปรสภาพแวดล้อมที่ตั้งค่า /etc/launchd.conf แม้ว่าที่เกี่ยวข้อง ssh กระบวนการทั้งหมดมี launchd ในฐานะผู้ปกครอง ทำไม???
ตัดจาก ps -ef เอาท์พุทแสดง:
UID PID PPID C STIME TTY TIME CMD
0 1 0 0 Mon01PM ?? 9:07.07 /sbin/launchd
.
.
.
501 150 1 0 Mon01PM ?? 0:17.99 /sbin/launchd
.
.
.
501 39994 150 0 Thu11AM ?? 0:00.72 /usr/bin/ssh-agent -l
.
.
.
0 74002 1 0 2:08PM ?? 0:00.05 /usr/sbin/sshd -i
501 74005 74002 0 2:08PM ?? 0:00.00 /usr/sbin/sshd -i
501 74000 9844 0 2:08PM ttys000 0:00.02 ssh bridge@bridgethegap.local
ฉันสามารถแก้ไขปัญหาได้โดยการตั้งค่า PATH เช่น. ใน .bashrcแต่ฉันกำลังค้นหาวิธีที่จะให้เหมือนกัน PATH ไปยัง ทั้งหมด แอปพลิเคชั่นเปิดตัวภายใต้ Mountain Lion (ดู ใน Mountain Lion ฉันจะตั้งค่าตัวแปรสภาพแวดล้อม PATH ได้อย่างไร ... )
ดังนั้นคำถามของฉันคือ: ทำไม remote shells ผ่าน ssh จึงไม่สืบทอดสภาพแวดล้อมของ launchd?