Mac OS X LeopardのluanchdスクリプトのProgramArguments
部分で環境変数を指定できるかどうか知りたいです。
<?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>me.mpietz.MountDevRoot</string>
<key>ProgramArguments</key>
<array>
<string>/bin/sh</string>
<string>$HOME/bin/attach-devroot.sh</string>
<!-- Instead of using...
<string>/Users/mpietz/bin/attach-devroot.sh</string -->
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
ProgramArgumentsキーにはありません。次のように、EnvironmentVariables
キーをplistの辞書に追加する必要があります。
<?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>EnvironmentVariables</key>
<dict>
<key>AN_ENVIRONMENT_VARIABLE_NAME</key>
<string>the_value</string>
</dict>
<key>Label</key>
<string>me.mpietz.MountDevRoot</string>
<key>ProgramArguments</key>
<array>
<string>/bin/sh</string>
<string>$HOME/bin/attach-devroot.sh</string>
<!-- Instead of using...
<string>/Users/mpietz/bin/attach-devroot.sh</string -->
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
参照: 起動デーモンとエージェントの作成 。
少なくとも$ {VARIABLE}置換としてではなく、launchdが環境についてネイティブに認識しているとは思いません。
ただし、launchdアクションとしてシェルスクリプト(または-c
を含むシェル)の起動を妨げるものは何もありません。これには環境があり、$ {VARIABLES}を尊重します-システムデーモンとユーザーデーモンの違いに注意してください/ agentsその場合でも...
わかりません-まだ試したことはありません...しかし、気になる変数がhomeだけの場合は、〜を使用できます。
So: <string>~/bin/attach-devroot.sh</string>