¿Configurando variables de entorno para scripts ejecutados por launchd?

1

Tengo un script que funcionó en el pasado, pero parece que ahora tiene problemas (creo que se debe a Yosemite). Lo que había hecho era crear una variable de entorno que estaba configurada en "falso" y luego mi secuencia de comandos la establecería en "verdadera", de modo que si la secuencia de comandos tomaba demasiado tiempo y comenzaba de nuevo antes de que finalizara, no intentaría volver a ejecutarse al mismo tiempo. Sin embargo, ya no funciona.

Establecí la variable inicialmente con /etc/launchd.conf

setenv autoBackupImagesInProgress false

Y la parte de mi script que ya no funciona es

#Ensure that this script isn't already running
if [ -z "$autoBackupImagesInProgress" ] ; then
   #Concurrency variable was not setup so this will not work;
   #edit .bashrc or .profile to include export autoBackupImagesInProgress=false
   #should be /etc/launchd.conf
   print "WARNING: Concurrency protection unavailable"
elif [ $autoBackupImagesInProgress = true ] ; then
   #Another process has already started this, but has not yet finished
   print "WARNING: Already in progress; aborting."
   exit 0;
fi

Esto funciona si inicio el script desde el terminal o Spotlight, pero no cuando se inicia con launchd. Cuando se ejecuta desde launchd, esto siempre imprimirá la primera advertencia y nunca golpea el elif.

    
pregunta tenmiles 10.11.2014 - 00:08

1 respuesta

1

Abra su Editor de secuencias de comandos (Launch Pad - > Other - > Editor de secuencias de comandos) Escribe guiones como esta:

do shell script "launchctl setenv autoBackupImagesInProgress false"

Utilice varias líneas si desea establecer varias variables.

Guarde este script como aplicación, abra Preferencias del sistema → Usuarios & Grupos → su usuario → Iniciar sesión y agregar su script guardado.

Para aplicar los cambios, cierre sesión en su cuenta y vuelva a iniciar sesión.

    
respondido por el jherran 10.11.2014 - 00:29

Lea otras preguntas en las etiquetas