La ragione per cui killall LightsOn
non funziona è perché tutto il nome del processo dell'applicazione in esecuzione AppleScript è applet
. Ad esempio, il percorso dell'eseguibile è:
../LightsOn.app/Contents/MacOS/applet
In generale e supponendo che il processo (es) non sia (sono) sospeso, si potrebbe usare killall applet
, tuttavia ciò terminerà tutte le applicazioni AppleScript in esecuzione e, naturalmente, potrebbe non essere desiderabile.
Quando un processo è bloccato, dovrai utilizzare un KILL
segnale , ad esempio:
killall -KILL applet
Tuttavia, pkill
è la strada da percorrere per indirizzare facilmente una specifica applicazione AppleScript e poiché è appesa ... usa un segnale KILL
, ad es .:
pkill -9 -f LightsOn
o
pkill -KILL -f LightsOn
Nota in questo caso, -9
è solo un altro modo per dire -KILL
.
Ora con pkill
e utilizzando l'opzione -f
, è possibile utilizzare più della lista argomenti completi , ad esempio:
pkill -9 -f /Applications/LightsOn.app/Contents/MacOS/applet
Quindi non c'è alcuna ambiguità su quale sia il applet
processo di cui uno è il targeting. Si può usare la maggior parte della lista di argomenti completi come si ritiene necessario per indirizzare il processo corretto.
Ad esempio, pkill -9 -f LightsOn
termina un'applicazione AppleScript denominata NoLightsOn
, quindi usa sempre abbastanza elenco argomenti completi per terminare il processo corretto.
Per riferimento:
Dalla pagina man di pkill
:
-f Match against full argument lists. The default is to match
against process names.
Dalla pagina man di 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)
Si noti che questo è solo un elenco segnale parziale e viene utilizzato con molte delle diverse utilità che possono terminare un processo. Vedi le varie pagine di manuale delle utilità utilizzate per ulteriori informazioni.