Come uccidere tutti i processi per un utente in Linux

Come uccidere tutti i processi per un utente in Linux
Non c'è niente di più frustrante che accedere al sistema Linux solo per far rallentare molti processi. Sebbene Linux sia molto bravo nella gestione dei processi, potrebbe essere necessario interrompere manualmente alcuni processi.

In questo tutorial, discuteremo di come trovare e uccidere i processi da un utente specifico. Useremo strumenti come Pkill e Killall.

NOTA: Assicurati di avere accesso a un account amministrativo o all'account root perché gli utenti regolari possono solo uccidere i loro processi, non i processi appartenenti ad altri utenti. D'altra parte, l'utente root può uccidere tutti i processi.

Iniziamo.

Comprensione dei segnali di sistema

Per uccidere un processo specifico, il comando invia un segnale al processo. Per impostazione predefinita, Kill comandi come Killall invia un segnale a termine che interrompe con grazia il processo specificato.

Prima di procedere a uccidere il comando, facciamo una breve panoramica dei segnali di processo.

I tipi comuni di segnali di uccisione includono:

  • Sighup - Questo segnale ricarica un processo. Ha un valore intero di 1.
  • Sigint - Interrompere dalla tastiera come ctrl + c. Ha un valore intero di 2.
  • Sigkill - Uccidi un processo. Ha un valore intero di 9.
  • Sigterm - Questo è un segnale di terminazione, che, come affermato, interrompe con grazia un processo. Ha un valore intero di 15.
  • Sigstop - Arresta un processo. Ha un valore intero di 17, 19 o 23.

NOTA: Quando si termina i processi, è bene iniziare con il segnale meno aggressivo, come il termine. L'uso di un segnale come il termine consentirà al programma di chiudere correttamente e utilizzare le misure impostate quando il programma riceve il segnale a termine.

Un segnale di uccisione può anche essere utile, soprattutto se un processo ha riscontrato un errore, non riesce a uscire o non risponde al segnale INT.

Per visualizzare tutti i segnali disponibili, usa un comando come un kill -l

Metodo n. 1 - Il comando killall

Il primo comando che puoi usare per uccidere i processi Linux è il comando killall. Per questo, hai bisogno del valore PID o del nome del processo che si desidera terminare.

È possibile utilizzare uno strumento come PGREP per ottenere il PID di un processo specifico.

Per esempio:

$ pgrep bash
2500

Una volta che hai il valore PID del processo, puoi terminare usando il comando Kill come:

$ killall -15 2500
# O
$ killall -15 bash

Il comando sopra invierà un segnale di terminazione grazioso.

Per inviare un segnale di uccisione, usa il numero intero -9 come:

$ kill -9 2500
# O
$ killall -9 bash

Come uccidere tutti i processi utente con killall

Il comando killall consente di interrompere tutti i processi di proprietà di un utente specifico. Per fare questo, usa il flag -u.

Ad esempio, per terminare tutti i processi generati dall'utente di Ubuntu.

$ sudo killall -u ubuntu

ATTENZIONE: A seconda dell'utente specificato nel comando, la terminazione dei processi può causare l'arresto del sistema o interrompere i processi di sistema critico. Pertanto, prima di applicare questo comando, assicurarsi che l'utente in questione non esegua processi che non si desidera terminare.

Metodo n. 2: il comando pkill

Un altro ottimo strumento che puoi utilizzare per terminare i processi Linux è il comando pkill. Questo comando funziona in modo simile a Killall.

Ad esempio, per terminare il processo di bash con pkill, utilizzare il comando:

$ pkill -15 bash
# O
$ pkill -15 2500

Per uccidere tutti i processi di proprietà dell'utente di Ubuntu, possiamo usare il comando:

sudo pkill -9 -u ubuntu

Conclusione

Questo è tutto per questo.

In questa guida, abbiamo rapidamente discusso dei modi per interrompere i processi in Linux e vari tipi di segnali di uccisione. Come visto, uccidere un singolo processo o più processi di proprietà di uno specifico utente Linux è facile.