1 votos

AppleScript se ejecuta de nuevo después de un reinicio iniciado por él. ¿Cómo evitarlo?

Tengo un shell script que es ejecutado por una aplicación AppleScript. Ese shell script reinicia la máquina en algún momento con shutdown -r now .

¿Cómo puedo evitar que la aplicación AppleScript se vuelva a lanzar automáticamente tras el reinicio?

  • La aplicación no está incluida en los elementos de inicio
  • La aplicación se lanza de nuevo como cualquier otra aplicación abierta cuando el shell script reinicia OS X

La secuencia es esta:

  1. Hago doble clic en la aplicación AppleScript
  2. AppleScript lanza un shell script en Terminal
  3. El shell script, en algún momento, reinicia el sistema
  4. La aplicación AppleScript se inicia de nuevo tras el reinicio

1voto

Haga que su AppleScript escriba un archivo vacío en una ubicación predefinida y compruebe su existencia cuando se inicie el script. Si el archivo ya está ahí, elimínelo y salga del script; de lo contrario, proceda normalmente y reinicie.

1voto

adayzdone Puntos 1258

Puedes intentar redirigir el comando del shell con

do shell script "insert_your_command &>/dev/null &"

y luego decirle a la aplicación que abandone

EDITAR
También puede añadir un retraso antes de redirigir el comando.

 do shell script "(sleep 5 ; insert_your_command) &>/dev/null &"

0voto

k0pernikus Puntos 141

Mi opinión es que OS X está restaurando el estado de la aplicación Apple script después de que se reinicie. Posiblemente podrías intentar que el script de Apple borre su propio estado de aplicación justo antes del comando de reinicio, aunque no he verificado que esto funcione, o sea posible. Debería estar ubicado en, ~/Library/Saved Application State/.

0voto

DavidD Puntos 179

Bien, lo encontré.

El shell script debía tener las siguientes líneas:

osascript -e 'tell app "System Events" to restart'
killall "Terminal"

Los comandos de shell anteriores inician el reinicio a través de un comando ad hoc Apple script, pero matan el Terminal inmediatamente después. Esto tiene el efecto de salir de la aplicación Apple script justo antes de que el proceso de reinicio de OS X lo haga. Por lo tanto, OS X no pone la aplicación Apple script en la lista de aplicaciones abiertas que deben ser reabiertas después del reinicio.

Dos efectos secundarios del uso de este método:

  • El reinicio a través de ese comando Apple script deja una oportunidad al usuario de guardar el trabajo no guardado de las aplicaciones abiertas, a diferencia del shutdown -r now que fuerza un reinicio inmediato.
  • El terminal sigue muriendo abruptamente, lo que puede ser un problema si los procesos se están ejecutando en otras ventanas/pestañas del terminal

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