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.