Creando un script que ejecutará un programa y si sale sin fallar, lo ejecutará nuevamente

1

Ya hice esta pregunta en el intercambio UNIx, pero me dijeron que también preguntara aquí sobre AppleScripts si el shell estándar no funciona.

Necesito un script que abra una aplicación. Espere a que se cierre, si la aplicación salió correctamente (I.E: no se bloqueó), vuelva a iniciarla. De lo contrario, mantenga abierto el informe de bloqueo y salga del script. Me gustaría que este script se ejecute hasta que lo cierre manualmente.

Hasta ahora se ha sugerido lo siguiente:

while open -W /path/to/application.app
do
    :
done

Pero esto abre la aplicación y luego, al bloquearse o salir, se ejecutará automáticamente de nuevo. Supongo que esto se debe a que abrir, independientemente de esperar o no, terminará con un código de salida normal de 0. A menos que, por supuesto, se bloquee, pero en este caso no lo hará.

Cualquier ayuda con esto es apreciada.

Gracias.

    
pregunta Ben Crazed Up Euden 24.07.2014 - 13:27

1 respuesta

1

Para continuar reiniciando el trabajo en una salida exitosa, puede usar launchd en OSX. Para esto, tiene que preparar el archivo * .plist para "decir" al lanzamiento y cómo comportarse. Para reiniciar la aplicación en una salida exitosa, consulte KeepAlive - > SuccessfulExit key (más información: enlace ). Para iniciar su trabajo, deberá iniciarlo mediante el comando launchctl , por ejemplo:

launchctl load path/to/file.plist

Para detenerlo:

launchctl unload path/to/file.plist

Más información sobre la programación de launchctl / launchd aquí:

enlace

enlace

    
respondido por el Mateusz Szlosek 24.07.2014 - 14:11

Lea otras preguntas en las etiquetas