3 votos

Crear una aplicación automator capaz de lanzar y salga del muelle

Tengo un comando de la shell de eso se ejecuta indefinidamente, hasta que se pare el uso de Control-C. Cuando lo ejecuto desde la Terminal, que es algo como:

$ /abspath/to/my-command
Command is running ...
Use Control-C to stop it.

Yo quería ser capaz de lanzar este comando fácilmente desde el muelle, así que he creado una aplicación Automator, con solo Ejecutar el Shell Script de componentes, donde escribí /abspath/to/my-command. Entonces, me salvó "MyApp.app" en mi carpeta de Aplicaciones y arrastrar y soltar para el dock.

Hasta el momento, funciona muy bien, cuando hago clic en la aplicación en el dock, el comando se ejecuta. Solo que hay un gran problema: no puedo salir de la aplicación! De hecho, en el dock ni siquiera parece que la aplicación se está ejecutando. La única solución que he encontrado hasta ahora es hacer ps aux | grep my-command y, a continuación, kill -9 <PID>.

¿Cómo puedo dejar de fumar "MyApp.app" (como haciendo Control-C en el Terminal)?

1voto

Malik hassan Puntos 16

Su aplicación no se inicia el proceso y, a continuación, se cierra en sí mismo en seguida de abandonar el proceso de ejecución.

Usted puede probar y ver en la acción de Automator para ver si el proceso se está ejecutando. si es que salga de él, si es que no lo inicie.

 isRunning=`ps aux | grep -i "Textedit.app"| grep -v grep`

    if [ $isRunning -eq "" ]; then 
        echo "is Not Running" 

/abspath/to/my-command
    else
        echo "is Running"  

# terminate code  here
    fi;

Así que cuando usted haga clic en la Aplicación en el Dock. a la voluntad de iniciar el proceso o detenerlo.

1voto

Apertura de una aplicación Automator se inicia un proceso denominado Application Stub, pero killall Application\ Stub no terminar sus procesos hijos.

$ sleep 1 && open ~/Desktop/Untitled.app/ & sudo execsnoop
[1] 650
  UID    PID   PPID ARGS
  501    655    650 open
  501    656    143 Application Stub
  501    657    143 Automator Launch
  501    658    656 bash
  501    658    656 say

pkill -P $(pgrep Application\ Stub) y killall say hecho de Automator mostrar un cuadro de diálogo que el flujo de trabajo ha detectado un error.

Si usted utiliza una aplicación AppleScript por el contrario, podría ser denunciado desde el Dock o con killall applet.

O si usted no desea mantener una ventana de shell abierto, el uso de repudiar o launchctl presentar:

say {1..99} & disown $! # stop with killall say
launchctl submit -l my.say say {1..99} # stop with launchctl remove my.say

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