Tengo un script que funcionaba en el pasado, pero parece tener problemas ahora (creo que es debido a Yosemite). Lo que había hecho era crear una variable de entorno que se ponía a "false" y luego mi script lo ponía a "true" para que si el script tardaba demasiado y volvía a empezar antes de terminar no intentara ejecutarse de nuevo de forma concurrente. Sin embargo, ya no funciona.
Inicialmente establecí la variable 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 la terminal o Spotlight, pero no cuando este se inicia con launchd. Cuando se ejecuta desde launchd esto siempre imprimirá la primera advertencia y nunca llega a la elif.