Hmm ... Kể từ Mac OS X 10.10.5 và có lẽ sớm hơn, man -s5 launchd.conf
nói với chúng tôi: " launchd.conf is no longer respected by the system.
" Tôi có quá nhiều thứ đang diễn ra ngay bây giờ để đặt một biến giả trong tệp và khởi động lại để xem nó có thực sự hoạt động hay không sau đó tất cả, nhưng tài liệu nói rằng nó không nên hoạt động.
Tôi khá chắc chắn rằng nó sẽ không. Làm man launchctl
và bạn sẽ thấy: " The /etc/launchd.conf file is no longer consulted for subcommands to run during early boot time; this functionality was removed for security considerations.
"
Những gì bạn có thể làm là đưa tất cả các biến môi trường mà bạn muốn trở thành toàn cầu vào một số tệp, có thể được gọi là environment
phù hợp với Linux hoặc (trong trường hợp Apple quyết định làm điều gì đó sau này - bạn không bao giờ biết) environment.conf
, như tôi đã làm, sau đó lấy nguồn này qua /etc/profile
:
if [ -f /etc/environment.conf ]; then
source /etc/environment.conf
fi
hoặc, nếu bạn thích định dạng nhỏ gọn:
if [ -f /etc/environment.conf ]; then . /etc/environment.conf; fi
Nếu bạn sử dụng một số shell khác ngoài bash và nó sử dụng cú pháp cài đặt biến tương tự như bash (như zsh, tôi nghĩ vậy), bạn cũng cần phải lấy nguồn tệp này từ tệp RC toàn hệ thống của shell đó (ví dụ /etc/zshrc
). Nếu bạn sử dụng shell sử dụng một cú pháp khác, ví dụ: tcsh, bạn sẽ cần duy trì một tệp tương tự cho shell đó và lấy nó từ tệp RC trên toàn hệ thống của shell (ví dụ: /etc/csh.cshrc
cho tcsh) hoặc tốt hơn là tạo tập lệnh tự động tạo nó, vì vậy bạn chỉ phải chỉnh sửa một tệp để thêm / thay đổi biến. Đây không phải là nơi cho một hướng dẫn như vậy; Một vài giây trên Google đã bật lên cách chuyển đổi [t] csh xuất biến thành cú pháp bash, tại https://stackoverflow.com/questions/2710790/how-to-source-a-csh-script-in-bash-to -set-the-môi trường, vì vậy có lẽ có một cái gì đó có sẵn để đi theo hướng khác.
Đó là kinh nghiệm của tôi rằng Mac OS X đang tiến xa hơn và xa hơn khỏi hành vi tệp RC dự đoán. Kể từ ít nhất 10.8, nó dường như không còn tải nữa /etc/rc.common
, /etc/rc.conf
hoặc /etc/rc.<anything>
, (ít nhất là 10.9), nó sẽ tải /etc/bash.bashrc
cho các vỏ không tương tác (mà chắc chắn nó sẽ làm, giống như nó tải ~/.bashrc
cho chúng, kể từ ngày 10.10) . Sau đó, một lần nữa tôi có Fink, MacPorts và Homebrew tất cả các công cụ cài đặt, vì vậy có thể một trong số chúng đang can thiệp vào hành vi dotfile mặc định. YMMV.
/etc/environment
) không được đọc vì nó không phải là bất kỳ tiêu chuẩn hệ thống chéo nào - nó chỉ là một phần của cơ sở Linux PAM. Mac OS X không phải là Linux và không sử dụng PAM, cũng như các hệ điều hành khác theo hiểu biết của tôi. Bạn chỉ thoát khỏi nó bởi vì bạn đã ở trên Linux, rõ ràng. Và có, nó vẫn đọc - Linux ;-)