Estoy intentando ejecutar un AppleScript cada 24 horas para cerrar una aplicación en ejecución y reiniciarla. He utilizado con éxito el siguiente código con otras aplicaciones:
repeat
delay 84600
set app_name to "APPLICATION NAME"
set the_pid to (do shell script "ps ax | grep " & (quoted form of app_name) & " | grep -v grep | awk '{print $1}'")
if the_pid is not "" then do shell script ("kill -9 " & the_pid)
delay 30
tell application app_name to activate
end repeat
Sin embargo, cuando ejecuto este script, aparece el error de que Kill: argumento debe ser proceso o id de trabajo.
Cuando verifico el valor de the_pid, regresa con el PID correcto, sin embargo, devuelve más de un PID. Por ejemplo, devuelve 5430 y 5960, uno que corresponde a la aplicación y el otro a CrashReporter. Por lo tanto, creo que el comando kill termina porque hay más de un PID presente en la variable the_pid.
¿Alguien sabe cómo solucionar este problema? ¿Cómo hacer que kill acepte la variable the_pid cuando contiene más de un PID? ¿Es una cuestión de formateo?
Sé que siempre puedo usar killall y pasar el nombre de la aplicación, pero no hay ninguna razón técnica por la que esto no funcione.