El motivo killall LightsOn no funciona porque todo el nombre del proceso de la aplicación AppleScript es applet . Por ejemplo, la ruta ejecutable es:
../LightsOn.app/Contents/MacOS/applet
En general, y suponiendo que los procesos no están bloqueados, se podría usar killall applet , sin embargo, esto terminará con todas las aplicaciones en ejecución de AppleScript , y por supuesto, eso puede no ser deseable.
Cuando se cuelga un proceso, deberás usar una señal KILL , por ejemplo:
killall -KILL applet
Sin embargo, pkill es el camino a seguir para apuntar fácilmente a una aplicación específica AppleScript y debido a que está bloqueada ... use una señal KILL , por ejemplo:
pkill -9 -f LightsOn
O:
pkill -KILL -f LightsOn
En esta instancia, -9 es solo otra forma de decir -KILL .
Ahora con pkill y usando la opción -f , se puede usar más de la lista de argumentos completa , por ejemplo:
pkill -9 -f /Applications/LightsOn.app/Contents/MacOS/applet
Entonces no hay ambigüedad en cuanto a qué applet proceso está apuntando. Uno puede usar la mayor parte de la lista de argumentos completa que considere necesario para apuntar al proceso correcto.
Por ejemplo, pkill -9 -f LightsOn terminará una aplicación AppleScript llamada NoLightsOn , así que siempre use suficiente de la lista de argumentos completa para finalizar el proceso correcto.
Para referencia:
Desde la página del manual pkill :
-f Match against full argument lists. The default is to match
against process names.
Desde la página del manual killall :
Some of the more commonly used signals:
1 HUP (hang up)
2 INT (interrupt)
3 QUIT (quit)
6 ABRT (abort)
9 KILL (non-catchable, non-ignorable kill)
14 ALRM (alarm clock)
15 TERM (software termination signal)
Tenga en cuenta que esta es solo una lista parcial de señal y se usa con muchas de las diferentes utilidades que pueden terminar un proceso. Consulte las distintas páginas del manual de las utilidades utilizadas para obtener información adicional.