Domanda:
Come posso chiudere un'app utilizzando Terminal?
Brainmaniac
2019-03-27 19:15:50 UTC
view on stackexchange narkive permalink

Desidero chiudere alcune applicazioni sul mio Mac utilizzando Terminal.Ad esempio, come uccido "Slack"?Ho bisogno del suo numero PID?

Sette risposte:
#1
+34
user3439894
2019-03-27 19:26:42 UTC
view on stackexchange narkive permalink

No, non è necessario conoscere il suo PID.

Puoi utilizzare:

  pkill -x Slack
 

Oppure:

  killall Slack
 

Note: Assicurati di leggere la pagina di manuale per qualsiasi comando scegli di usare, per vedere le varie opzioni disponibilial comando , in quanto potrebbe essere rilevante per il suo utilizzo particolare.In Terminal digita ad es. man pkill e premi invio , oppure digita il comando e fai clic con il tasto destro su di esso, quindi seleziona : Apri man Page

#2
+29
Matteo
2019-03-28 11:52:25 UTC
view on stackexchange narkive permalink

Puoi utilizzare AppleScript per dire all'applicazione di chiudersi:

  osascript -e 'quit app "Slack"'
 

questo dirà all'applicazione di chiudere e avvierà tutte le attività di salvataggio e pulizia.Oppure puoi inviare il segnale TERM con pkill ma è possibile che l'applicazione non si chiuda in modo pulito

  pkill -x Slack
 
Questo è il metodo migliore, perché replica ciò che accade quando usi "File> Esci" dal menu.
Eh.Ho sempre usato `osascript -e 'dì all'applicazione" Slack "di uscire" "ma se la sintassi più breve funziona, allora è ovviamente preferibile.Questa è sicuramente una risposta migliore di qualsiasi cosa che suggerisca "kill" o una qualsiasi delle sue varianti.
@TJLuoma Penso che se selezioni il segnale corretto, `pkill` è grazioso come qualsiasi altro metodo.Anch'io preferisco AppleScript, sebbene abbia creato una funzione `quit` per renderlo ventilato.Tuttavia, se la creazione di un processo AppleScript non è necessaria, `pkill -QUIT -x Slack` dovrebbe andare bene.
#3
+12
user321134
2019-03-28 03:00:00 UTC
view on stackexchange narkive permalink

Poiché non ho ancora la reputazione di commentare, lo dico come risposta a parte. pkill senza flag non corrisponde a un processo specifico!Ad esempio, l'esecuzione di pkill foo mirerebbe a processi denominati foo , ma anche a processi denominati foobar .Questo perché utilizza espressioni regolari.

Se desideri terminare un processo specifico, puoi passargli il flag -x .Ad esempio, pkill -x foo .Questo utilizzerà nomi esatti invece di espressioni regolari.

Ad esempio, nel tuo caso, pkill -x Slack farà il trucco.

#4
+8
BEFio
2019-03-27 22:20:00 UTC
view on stackexchange narkive permalink

Puoi installare htop (tramite brew ad esempio).

Dovrai eseguirlo come root o con sudo .In sostanza, è un testo Activity Monitor basato.

Seleziona il processo che vuoi uccidere (con i tasti freccia o con il mouse).

Quindi premere k per inviare un segnale al processo e quindi 9 per scegliere il segnale SIGKILL .

#5
+6
scohe001
2019-03-27 23:57:02 UTC
view on stackexchange narkive permalink

Non sono sicuro per Slack, ma alcune applicazioni eseguiranno più processi e potresti volerne uccidere solo uno (trovo che spesso debba farlo con iTunes, ad esempio).In tal caso, puoi eseguire

  ps -e |grep -i slack
 

Per trovare tutti i processi con "allentamento" senza distinzione tra maiuscole e minuscole nel nome.L'output dovrebbe apparire come (senza l'intestazione):

  PID TTY TIME CMD
649 punti / 1 00:00:00 bash
 

La prima colonna sarà il tuo PID.Puoi quindi usarlo per uccidere specificamente quel processo:

  kill -9 649
 

Sostituendo 649 con il tuo PID che hai trovato chiamando ps .

kill invia un segnale per terminare l'app.Non è necessario utilizzare -9 (kill) se l'applicazione risponde.Rischi di perdere dati non salvati
Allo stesso modo, se ti capita di voler uccidere, diciamo, tutte e 5 le istanze di un processo denominato, potresti filtrare l'output di `ps` sul valore CMD e quindi uccidere tutte le prime voci su quelle righe.
@Carl Witthoft, puoi semplicemente usare `killall procname`, ad es.`killall Slack` e _kill_ tutte le occorrenze di _Slack_ o qualunque cosa sia` procname`.Non c'è bisogno di usare `ps`!
Quindi, `pgrep` è un bel comando che combina` ps` e `grip`.
#6
  0
mr.robot
2019-10-07 18:09:49 UTC
view on stackexchange narkive permalink

No, puoi usare pkill per terminare un'applicazione in esecuzione.Ad esempio -

  pkill Notes
 

Se fallisce, c'è un modo alternativo

Ottieni l'ID di processo dell'app utilizzando pgrep.Ad esempio -

  pgrep Note
 

Quindi, per chiudere l'app, utilizzare

  kill <process ID>
 
#7
  0
James QU
2020-03-12 07:55:14 UTC
view on stackexchange narkive permalink

Se l'applicazione ha un nome di registro, assicurati di fornire il nome completo elencato nelle applicazioni

ad es.chiudi e poi riapri

osascript -e 'chiudi l'app "Cisco AnyConnect Secure Mobility Client.app"'

apri / Applicazioni / Cisco / Cisco \ AnyConnect \ Secure \ Mobility \ Client.app/



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 4.0 con cui è distribuito.
Loading...