1 votos

Dinámicamente la configuración de la CASA de la variable de entorno en un launchd script?

Continuar a partir de este tema, terminé con:

<?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>

pero me pregunto: ¿hay alguna manera de configurar el HOGAR variable dinámicamente? (en vez de código fijo - /Users/quanta)

He intentado añadir un EnableGlobbing clave para el plist:

<key>EnableGlobbing</key>
<true/>

luego se cambió el valor de la variable HOME a la tilde:

<key>EnvironmentVariables</key>
<dict>
  <key>HOME</key>
  <string>~</string>
</dict>

y reiniciar el salt-minion. Esto es lo que obtengo:

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

Parece que la expansión está habilitado sólo para las cadenas en el Program o ProgramArguments claves.

2voto

LCC Puntos 572

Tienes razón: launchd realiza tilde-expansión sólo para ProgramArguments. Pero usted es libre de dejar un shell de hacer el trabajo:

<key>ProgramArguments</key>
<array>
    <string>/bin/sh</string>
    <string>-c</string>
    <string>export HOME=~; /usr/local/bin/salt-minion</string>
</array>

Tenga en cuenta que el ~ en este ejemplo no es interpretado por launchd (usando EnableGlobbing), sino por la propia concha.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X