Fahren Sie mit diesem Thema fort, ich endete mit:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.saltstack.minion</string>
<key>EnvironmentVariables</key>
<dict>
<key>HOME</key>
<string>/Users/quanta</string>
</dict>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/salt-minion</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
aber ich frage mich: Gibt es eine Möglichkeit, die HOME-Variable dynamisch zu setzen? (statt Festcode - /Users/quanta
)
EnableGlobbing
Ich habe versucht , der plist einen Schlüssel hinzuzufügen :
<key>EnableGlobbing</key>
<true/>
änderte dann den Wert der HOME-Variablen in die Tilde:
<key>EnvironmentVariables</key>
<dict>
<key>HOME</key>
<string>~</string>
</dict>
und starten Sie die salt-minion
. Hier ist, was ich bekomme:
MacBook-Pro.local:
- /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/pathname.rb:853:in `expand_path': non-absolute home (ArgumentError)
- from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/pathname.rb:853:in `expand_path'
- from /usr/local/Library/Homebrew/global.rb:25:in `cache'
- from /usr/local/Library/Homebrew/global.rb:44
- from /usr/local/Library/brew.rb:17:in `require'
- from /usr/local/Library/brew.rb:17
Es scheint, dass die Erweiterung nur für Zeichenfolgen in den Schlüsseln Program
oder aktiviert ist ProgramArguments
.
Sie haben Recht: launchd führt die Tilde-Erweiterung nur für ProgramArguments
. Es steht Ihnen jedoch frei, eine Shell die Arbeit erledigen zu lassen:
<key>ProgramArguments</key>
<array>
<string>/bin/sh</string>
<string>-c</string>
<string>export HOME=~; /usr/local/bin/salt-minion</string>
</array>
Beachten Sie, dass ~
in diesem Beispiel nicht von launchd (mit EnableGlobbing
) interpretiert wird, sondern von der Shell selbst.