AppleScript se ejecuta de nuevo después de un reinicio iniciado. ¿Cómo evitar eso?

1

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

¿Cómo puedo evitar que la aplicación AppleScript se inicie automáticamente de nuevo después del reinicio?

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

La secuencia es esta:

  1. Hago doble clic en la aplicación AppleScript
  2. AppleScript lanza un script de shell en Terminal
  3. El script de shell, en algún momento, reinicia el sistema
  4. La aplicación AppleScript se inicia de nuevo después del reinicio
pregunta DavidD 09.12.2014 - 16:46

4 respuestas

1

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

    
respondido por el nohillside 09.12.2014 - 17:20
1

Puedes intentar redirigir el comando de shell con

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

y luego dile a la aplicación que salga

EDITAR
También puede agregar un retraso antes de redirigir el comando.

 do shell script "(sleep 5 ; insert_your_command) &>/dev/null &"
    
respondido por el adayzdone 09.12.2014 - 18:15
0

Supongo que OS X está restaurando el estado de la aplicación Apple Script después de que se reinicie. Posiblemente podría intentar y hacer que el Apple Script elimine su propio estado de aplicación justo antes del comando de reinicio, aunque no he verificado que esto funcione, o es posible. Debe estar ubicado en, ~ / Biblioteca / Estado de la aplicación guardada /.

    
respondido por el Flying Trashcan 09.12.2014 - 17:21
0

Ok lo encontré.

El script de shell necesitaba 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 de Apple Script ad hoc, pero eliminan el Terminal inmediatamente después. Esto tiene el efecto de salir de la aplicación Apple Script justo antes de que lo haga el proceso de reinicio de OS X. Por lo tanto, OS X no coloca la aplicación Apple Script en la lista de aplicaciones abiertas que deben volver a abrirse después del reinicio.

Dos efectos secundarios de utilizar este método:

  • reiniciar a través de ese comando de Apple Script le da la oportunidad al usuario de guardar el trabajo no guardado de las aplicaciones abiertas, a diferencia del comando shutdown -r now shell que fuerza un reinicio inmediato.
  • El terminal aún muere abruptamente, lo que puede ser un problema si los procesos se ejecutan en otras ventanas / pestañas de Terminal
respondido por el DavidD 10.12.2014 - 13:36

Lea otras preguntas en las etiquetas