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を追加するなど、環境変数を追加することもできます。