El CapitanでlaunchdにPATHの追加などの環境変数を与える
昔のOSXではlaunchdに環境変数を与えるには/etc/launchd.confを編集する必要があったみたいなのですが、 今のEl Capitanなどのlaunchdはデフォルトでは /usr/bin:/bin:/usr/sbin:/sbin しかPATHが通っていないので、 /usr/local/binにあるbrewなどでインストールしたソフトウェアをPATHを省略して立ち上げることができません。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>my.startup</string> <key>ProgramArguments</key> <array> <string>sh</string> <string>-c</string> <string> launchctl setenv PATH /usr/local/bin:$PATH </string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
これを
~/Library/LaunchAgents/environment.plist
に保存して、
launchctl load ~/Library/LaunchAgents/environment.plist
を実行するとlaunchdから呼び出される実行環境のPATHに/usr/local/binが追加されています。 同じようにJAVA_HOMEを追加するなど、環境変数を追加することもできます。