Sto tentando di eseguire un AppleScript ogni 24 ore per chiudere un'applicazione in esecuzione e riavviarla. Ho usato il seguente codice con successo con altre app:
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
Tuttavia, quando eseguo questo script ottengo l'errore che Kill: l'argomento deve essere processo o id di lavoro.
Quando controllo il valore di the_pid, restituisce il PID corretto, tuttavia restituisce più di un PID. Ad esempio, restituisce 5430 e 5960, uno che corrisponde all'applicazione e l'altro a CrashReporter. Quindi, credo che il comando kill non riesca a causa della presenza di più di un PID nella variabile the_pid.
Qualcuno sa come muoversi / risolvere questo problema? Come rendere kill accetta la variabile the_pid quando contiene più di un PID? È una questione di formazione?
So che posso sempre usare killall e passare il nome dell'applicazione, ma non ci sono motivi tecnici per cui questo non dovrebbe funzionare.