Tengo un AppleScript que uso para configurar la pantalla compartida de mi AppleTV, a veces se atasca y tengo que matarlo para volver a intentarlo. Así que me gustaría escribir un script que mate cualquier que se esté ejecutando y luego ejecutar el scriptde nuevo.
El problema es que no puedo encontrar una manera de hacerlo que no mate al propio script.
Puedo ver el uso de
ps axc
que el archivo tiene la ruta
/Aplicaciones/Conexión de la pantalla de reflejo - Maestro Bedroom.app/Contents/MacOS/applet
Así que intenté usar
set PID to do shell script "(ps ax | grep \"Connect Screen Mirroring - Master Bedroom\" | grep applet | awk '{print $1}')"
do shell script "kill " & PID
Pero eso me da el error
sh: línea 0: kill: 88944 89410 89411: los argumentos deben ser procesos o trabajos IDs
Creo que el problema es que el primer script me devuelve un segundo, y a veces un tercer, PID inesperado, así que si pudiera encontrar una manera de filtrar eso podría estar bien.
Si ejecuto sólo
set PID to do shell script "ps ax | grep \"Connect Screen Mirroring - Master Bedroom\" | grep applet"
Vuelvo
"89474 ?? S 0:00.33 /Applications/Connect Screen Mirroring - Master Bedroom.app/Contents/MacOS/applet 89485 ?? S 0:00.00 sh -c ps ax | grep "Connect Screen Mirroring - Master Bedroom" | grep applet"
Lo mejor que puedo decir es que la segunda cosa que se devuelve es el propio comando del shell.
¿Alguna sugerencia sobre cómo ignorarla? ¿O una forma mejor de hacerlo?