web-dev-qa-db-ja.com

launchdスクリプトで環境変数を使用する

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>
21
matpie

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>

参照: 起動デーモンとエージェントの作成

16
Joe Block

少なくとも$ {VARIABLE}置換としてではなく、launchdが環境についてネイティブに認識しているとは思いません。

ただし、launchdアクションとしてシェルスクリプト(または-cを含むシェル)の起動を妨げるものは何もありません。これには環境があり、$ {VARIABLES}を尊重します-システムデーモンとユーザーデーモンの違いに注意してください/ agentsその場合でも...

3
voretaq7

わかりません-まだ試したことはありません...しかし、気になる変数がhomeだけの場合は、〜を使用できます。

So: <string>~/bin/attach-devroot.sh</string>
1
Dave Holland