GNU/Linux >> Linux Esercitazione >  >> Linux

5 modi rapidi per uccidere un processo in Linux

Il sistema operativo Linux fornisce diversi modi per terminare un processo del sistema operativo Linux. Il modo più ovvio per interrompere un programma è fare clic sul pulsante X nell'angolo in alto a sinistra oa destra. Ma ci sono una miriade di altri modi per uccidere un processo; siamo qui per discutere gli altri modi efficienti.

Modi per terminare un processo in Linux

Sequenza di controllo

Il secondo modo ovvio per terminare un processo che è stato appena avviato è digitare Ctrl-C nella riga di comando. La sequenza di controllo Ctrl-C è generalmente sicura da usare anche se è possibile una certa perdita di dati.

La sequenza Ctrl-Z sospenderà un processo in esecuzione. Invia il segnale SIGTSP a un processo la cui azione predefinita è sospendere il processo.

uccidi comandi

Il sistema operativo Linux viene fornito con il comando kill che puoi utilizzare per terminare un processo quando non risponde o consuma troppe risorse. Un processo in Linux è un'istanza di un programma.

Un PID univoco viene generato automaticamente per quel processo all'avvio di un programma. Il processo init è il primo processo che inizia quando un sistema Linux viene avviato e viene assegnato un valore di "1".

Init è il processo principale e non può essere ucciso tramite il comando kill. Il comando kill sul processo init è semplicemente una richiesta di spegnimento del sistema.

Questa guida ti guiderà attraverso i passaggi e diversi modi per terminare un processo in esecuzione utilizzando il terminale Linux.

L'utente root ha tutte le autorizzazioni necessarie per terminare tutti i processi. Puoi ottenere una shell di root con il comando su o aggiungere sudo prima del comando ed eseguirlo.

Il segnale predefinito inviato dal comando kill

L'uccisione di un processo invierà un messaggio di terminazione al processo specificato. I due tipi principali di messaggi di terminazione includono:

• SIGTERM – Il comando kill invierà un segnale SIGTERM per impostazione predefinita. Dovrebbe consentire al processo di terminare attraverso le normali procedure di arresto. È un modo più delicato per tentare di terminare un processo e potrebbe essere bloccato.

• SIGKILL – Ucciderà sempre un processo all'improvviso. Se SIGKILL non funziona, il sistema operativo è guasto. È il metodo più rapido ed efficace per terminare un processo.

Elenca i processi in esecuzione

Il comando top, il comando ps e il comando pidof sono i modi più semplici per visualizzare i processi in esecuzione in un sistema Linux.

Sintassi:

ps -e | grep name-of-process

La schermata seguente mostra come utilizzare il comando ps per verificare se MySQL è in esecuzione sul sistema. Ci fornisce il PID del demone MySQL, che è 1162.

Opzioni comuni da aggiungere al comando ps

• -a:visualizza i processi di tutti gli utenti.
• -u:visualizza informazioni dettagliate su ciascun processo.
• -x:visualizza tutti i processi controllati dai demoni.

ps -e

Sintassi:

top

Il comando in alto ti mostrerà il PID, l'utente, il nome della risorsa e quante risorse di sistema utilizza ciascun processo. Questi sono utili se decidi di terminare uno qualsiasi dei processi.

L'uso del comando pgrep è anche molto efficiente per ottenere l'ID di processo corrispondente.

Opzioni comuni da aggiungere al comando pgrep.

• -l:elenca i nomi dei processi e i PID.
• -n:restituisce il processo più recente.
• -o:restituisce il processo più vecchio.
• -u:trova i processi che appartengono a un utente specifico.
• -x:trova un processo che corrisponda esattamente a un determinato modello.

Il comando pidof viene utilizzato per trovare l'IP di un processo se si conosce il nome del processo.

Sintassi:

pidof <options> <program>

Opzioni:

• -c:restituisce i PID all'interno di una singola directory principale.
• -o:ometterà determinati PID.
• -s:restituisce un singolo PID.
• -x:restituisce i PID di shell che eseguono script.

Puoi terminare un processo in Linux con metodi diversi a seconda che tu conosca il PID del processo, il nome del processo o il tempo di esecuzione del processo.

comando killall

Il comando killall viene utilizzato per terminare i processi in base al nome. Può uccidere più processi con un singolo comando e invia un segnale SIGTERM per impostazione predefinita.

Sintassi:

killall <process>

Opzioni disponibili con il comando killall:

• -e:restituisce la corrispondenza esatta per il nome del processo.
• -I:il comando ignorerà il caso quando trova il nome del processo.
• -i:richiederà informazioni aggiuntive quando si uccide un processo per nome.
• -u:ucciderà i processi di proprietà di un utente specificato del sistema.
• -v:darà un feedback se il processo di uccisione è stato eseguito correttamente.

Il comando killall può anche terminare i processi in un sistema Linux in base ai tempi di esecuzione dei processi.

• -o:questa opzione interromperà tutti i processi per un periodo di tempo superiore a quello specificato.
• -y:questa opzione interromperà tutti i processi in esecuzione per un periodo di tempo inferiore a quello specificato.

Esempio:

• killall -o 20m:il comando interromperà tutti i processi che sono più vecchi di 20 minuti.
• Killall -y 20m:il comando interromperà tutti i processi in esecuzione per meno di 15 minuti.

uccidi comando

Il comando kill ucciderà un processo se conosci l'IP del processo.

Sintassi:

kill <processID>

Il comando kill uccide un singolo processo con l'ID processo specificato. Il Comando invierà un segnale SIGTERM per fermarsi e attendere che il processo venga sottoposto alle procedure di spegnimento di routine.

Uccidi il comando -9

Il comando kill -9 viene utilizzato per terminare processi o servizi che non rispondono.

Sintassi:

kill -9 <processID>

o

kill -SIGKILL <processID>

Il comando kill -9 invierà un segnale SIGKILL per arrestare immediatamente un processo. Il comando kill -9 ignorerà la routine di spegnimento standard e tutti i dati non salvati andranno persi.

I programmi che non rispondono ignoreranno il comando kill ma termineranno ogni volta che viene emesso il comando kill -9.

Altre opzioni di uccisione comunemente utilizzate includono:

• -1 (HUP):questa è l'opzione "riaggancia" ed è generalmente molto sicura.
• -2 (SIGINT):questo è lo stesso segnale di Ctrl-C ed è considerata un'alternativa sicura per uccidere un programma.
• -15 (-TERM):questo è il segnale di terminazione predefinito ed è generalmente molto sicuro.

Puoi ottenere un elenco completo di tutti i segnali disponibili usando il comando kill -l.

comando pkill

Il comando pkill ucciderà un processo quando conosci il nome del processo. Per impostazione predefinita, pkill invierà il segnale SIGTERM per terminare il processo.

Sintassi:

pkill <options> <pattern>

opzioni di pkill:

• -n:questo comando interromperà i processi più recenti.
• -o:questo comando interromperà i processi più vecchi.
• -u:questo comando interromperà i processi in base all'utente selezionato.
• -x:questo comando interromperà i processi che corrispondono a un pattern.
• -signal:invia un segnale specificato diverso dal segnale predefinito SIGTERM.

xkill

Il comando xkill chiuderà la connessione di un server ai client.

xkill <resource>

Il comando xkill interromperà i processi server indesiderati.

comando superiore

Il comando in alto fornisce un'interfaccia attraverso la quale un utente può specificare il processo di terminazione.

Sintassi:

top

Per terminare un processo tramite PID, inserisci k dall'interfaccia e quindi inserisci un ID processo specificato.

Riepilogo

• È necessario disporre delle autorizzazioni sudo per terminare un processo tramite la riga di comando.

• Ogni volta che si genera un segnale utilizzando il comando kill, il sistema Linux interrompe il normale flusso di esecuzione del processo di destinazione.

• Per trovare un processo in esecuzione, puoi utilizzare i comandi ps, top, pgrep o pidof.

• Puoi terminare un processo in base al nome o all'ID del processo utilizzando i comandi killall, pkill, kill, xkill o top.

• Un processo di uccisione invierà un segnale di terminazione di SIGTERM, SIGHUP o SIGKILL.

• È possibile utilizzare System Monitor per terminare il processo Linux. Può essere trovato negli strumenti di sistema e fornisce diverse opzioni come il processo principale, il processo finale o l'interruzione del processo.

• Il comando kill e le sue varianti sono piuttosto semplici da capire e da usare.

In questa guida, abbiamo evidenziato vari modi per terminare i processi in Linux. C'è una leggera curva di apprendimento in termini di elenco di opzioni di segnale che offre, che è essenziale per una corretta amministrazione di Linux. Se vuoi saperne di più, ti suggerisco di guardare le rispettive pagine man.


Linux
  1. Come uccidere un processo su Linux usando il comando?

  2. kill Esempi di comandi in Linux

  3. Esempi di comandi pkill in Linux

  4. Uccidi un processo Java (in Linux) in base al nome del processo anziché al PID

  5. Linux:chiudi un programma con la riga di comando (non uccidilo)

Kill Command in Linux

Comando W in Linux

Al comando in Linux

7 modi migliori per uccidere i programmi che non rispondono in Linux

Come KILL un processo su Linux

Qual è il comando kill in Linux?