Ricerca nel sito web

Come uccidere processi Linux/applicazioni che non rispondono utilizzando il comando 'xkill'


Come uccidiamo una risorsa/processo in Linux? Ovviamente troviamo il PID della risorsa e poi passiamo il PID al comando kill.

Parlando più precisamente, possiamo trovare il PID di una risorsa (diciamo terminale) come:


ps -A | grep -i terminal

6228 ?        00:00:00 gnome-terminal

Nell'output sopra, il numero "6228" è il PID del processo (gnome-terminal), utilizza il comando kill per terminare il processo come mostrato di seguito.


kill 6228

Il comando kill invia un segnale a un processo, il cui PID viene passato insieme al comando.

In alternativa, possiamo usare il comando pkill, che uccide un processo in base al nome e ad altri attributi di un processo. Per terminare un processo il cui nome è terminale, dobbiamo eseguire:


pkill terminal

Nota: la lunghezza del nome del processo in pkill è limitata a15 caratteri.

pkill sembra più pratico in quanto puoi terminare un processo senza dover scoprire il suo PID. Ma se vuoi avere un controllo migliore sul tuo sistema, niente batte il comando “kill”. Usando kill avrai una visione migliore del processo che stai uccidendo.

Abbiamo già trattato una guida dettagliata sui comandi kill, pkill e killall.

Per coloro che utilizzano X server c'è un altro strumento chiamato xkill che può terminare un processo dalla sua finestra X senza passare il nome del processo o il suo PID.

L'utilità xkill forza il server X a chiudere le comunicazioni con il suo client, il che si traduce nell'uccisione del client da parte della sua risorsa X. xkill, che fa parte delle utilità X11, è molto utile per eliminare le finestre non necessarie.

Supporta opzioni come la connessione a un server X specifico (-display displayname) utilizzando il numero di visualizzazione quando più server X sono in esecuzione su un host contemporaneamente e termina tutti i client (-all, non consigliato) con finestre di primo livello sullo schermo e prende in considerazione il frame (-frame).

Per ottenere un elenco di tutti i client che puoi eseguire:


xlsclients
Uscita del campione

'  ' /usr/lib/libreoffice/program/soffice
deb  gnome-shell
deb  Docky
deb  google-chrome-stable
deb  soffice
deb  gnome-settings-daemon
deb  gnome-terminal-server

Se non viene passato alcun identificatore di risorsa con id, xkill trasforma il puntatore del mouse in un simbolo speciale, simile a "X". Basta fare clic sulla finestra che vuoi chiudere e questo interromperà la sua comunicazione con il server o dirà che il programma viene ucciso.


xkill

È importante notare che xkill non garantisce che la chiusura della sua comunicazione la ucciderà/annullerà con successo. La maggior parte dell'applicazione verrà uccisa quando la comunicazione con il server viene chiusa. Tuttavia alcuni potrebbero essere ancora in esecuzione.

Punti che devono essere menzionati qui:

  1. Questo strumento funziona solo quando il server X11 è in esecuzione, poiché xkill fa parte dell'utilità X11.
  2. Da non confondere con la chiusura e l'uccisione di una risorsa. Mentre uccidi una risorsa potresti aspettarti che non esca in modo pulito.
  3. Questa non è una sostituzione dell'utilità kill.
Devo andare alla riga di comando di Linux per invocare xkill?

No, non è necessario attivare xkill dalla riga di comando di Linux. Puoi impostare una scorciatoia da tastiera e chiamare xkill semplicemente premendo la stessa combinazione di tasti.

Ecco come impostare una scorciatoia da tastiera su un tipico ambiente desktop gnome3.

Vai su Impostazioni –> Seleziona tastiera, fai clic su '+' e aggiungi nome e comando. Fare clic sulla nuova voce e premere il tasto che si desidera utilizzare come combinazione di tasti di scelta rapida. Ho fatto Ctrl+Alt+Maiusc+x.

La prossima volta che vuoi eliminare una risorsa X, chiama semplicemente la combinazione di tasti (Ctrl+Alt+Shift+x) e noterai che il puntatore del mouse è cambiato in x. Fai clic sulla x risorsa che desideri eliminare e tutto è fatto!