Abbiamo avuto tutti quei giorni in cui il nostro computer funziona in modo eccezionalmente lento e balbetta nell’eseguire anche le attività di base. In Windows, hai solo il Task Manager di Windows per ispezionare e terminare i processi che non sono così importanti ma consumano enormi quantità di memoria. Tuttavia, in Linux, hai un intero arsenale di comandi e strumenti GUI per gestire queste attività. In questo articolo, mostreremo alcuni semplici metodi della riga di comando (CLI) e metodi della GUI su come terminare un processo in Linux.
Sommario:
Termina il processo in Linux (2023)
Ma prima di immergerci nel mondo della gestione dei processi in Linux, cerchiamo di capire cos’è esattamente un processo e cos’è un ID di processo nei sistemi Linux.
Cosa sono i processi in Linux
In Linux, ogni istanza attualmente in esecuzione di un programma è nota come “processo”, mentre ogni file eseguibile è noto come programma. Quando viene eseguito un programma, viene creato un processo e a ciascun processo viene assegnato un numero di identificazione univoco a 5 cifre noto come “ID processo”. Quando un processo ha terminato l’esecuzione o viene terminato forzatamente, il suo ID processo viene assegnato al processo successivo nella riga.
Uccidi il processo tramite la riga di comando in Linux
Sebbene l’utilizzo del terminale a volte possa sembrare intimidatorio rispetto all’utilizzo degli strumenti della GUI per le attività di base, la gestione di vari processi diventa molto più semplice una volta acquisita una comprensione dei comandi e delle loro varie opzioni.
Segnali di terminazione
Quando provi a terminare un processo dalla GUI o dalla CLI in Linux, il kernel invia un segnale di terminazione al processo. Il processo agisce di conseguenza, a seconda del segnale ricevuto. A ciascuno di questi segnali viene assegnato un numero specifico che il programma può comprendere rapidamente. Esistono numerosi tipi di segnali di terminazione, ma qui abbiamo spiegato solo quelli essenziali:
SegnaleValore numericoDescrizioneSIGHUP1Sta per ‘Signal Hangup’
Viene inviato quando il terminale è chiuso.SIGINT2Sta per ‘Signal Interrupt’
Viene inviato quando l’utente termina il processo.SIGKILL9Sta per ‘Signal Kill’
Viene inviato quando è necessario uscire immediatamente da un processoSIGTERM15Sta per ‘Signal Termination’
Viene inviato quando è necessario terminare un processo e rilasciare le risorse consumateSIGSTOP19 – per ARM, x86
17 – per ALFA
23 – per MIPS
24 – per PA-RISCit sta per ‘Segnale Stop’
Viene inviato quando è necessario mettere in pausa un processo e riprenderlo successivamente. I segnali più comunemente usati sono SIGKILL (9) e SIGTERM (15).
Identificare gli ID processo
Prima di terminare un processo, è necessario conoscere alcuni dettagli del processo come l’ID del processo, il tempo di esecuzione, ecc. Per conoscere i dettagli di un processo, utilizzare il comando ps:
p.s
Con il comando ps, devi cercare il processo scorrendo e annotando il suo nome, che potrebbe essere ingombrante. Invece, puoi persino utilizzare il comando grep con il comando ps in una pipeline, come mostrato di seguito:
ps | grep
Per semplificare le cose, c’è un comando separato che mostra solo l’ID del processo di qualsiasi processo in esecuzione che devi conoscere. La sintassi per utilizzare il comando pidof è:
pidof
Termina il processo usando il comando kill
Dopo aver annotato l’ID del processo che si desidera terminare, il comando più comune utilizzato per terminare i programmi sul proprio sistema Linux è il comando kill. La sintassi per utilizzare il comando kill è:
kill
Il parametro
Terminare il processo utilizzando il comando pkill
Se ritieni che la ricerca dell’id del processo sia scomoda, puoi utilizzare il comando pkill. Cerca i processi che corrispondono a un modello e poi lo uccide. La sintassi per utilizzare il comando pkill è:
pkill
Alcune delle opzioni comuni da abbinare al comando pkill sono:
OptionDescription-nSeleziona solo i processi più recenti che corrispondono all’id del processo-uSeleziona i processi di proprietà di un particolare utente-xSeleziona i processi che corrispondono esattamente al modello
Ciò è particolarmente importante quando più utenti lavorano su diverse istanze dello stesso programma nello stesso sistema e una delle istanze inizia ad avere un comportamento imprevisto. Ad esempio, nello screenshot seguente, stiamo uccidendo l’istanza “gedit” di proprietà dell’utente “intel” utilizzando il comando pkill in Linux:
pkill -u intel gedit
Termina il processo usando il comando killall
Il comando killall funziona in modo simile al comando kill ma termina tutti i processi corrispondenti al nome del processo indipendentemente dall’utente. Per impostazione predefinita, invia il segnale SIGTERM se non specificato diversamente. Una cosa interessante da notare è che il comando killall non può mai terminare se stesso ma può terminare altre istanze del comando killall. La sintassi per utilizzare il comando killall è:
killall
Alcune delle opzioni da abbinare al comando killall sono:
OptionDescription-rInterpreta process_name come pattern regex e quindi termina i processi corrispondenti al pattern-ukills il processo specificato di proprietà di un proprietario specificato.-oKills i processi specificati più vecchi (avviati prima) di un’ora specifica. iniziato dopo) l’ora specifica.
Il comando killall può essere utile per terminare una serie dello stesso processo o anche tutti i processi di proprietà di uno specifico proprietario. Qui nel nostro esempio, stiamo uccidendo tutti i processi di “dormire per 500 secondi” usando il comando killall in Linux:
killall -v dormi
Termina il processo Linux usando il comando top/htop
Questo metodo per uccidere i processi è utile quando non hai idea di quali processi stiano consumando il massimo delle risorse. In entrambi i comandi, puoi navigare attraverso tutti i processi in esecuzione o persino i processi zombi e terminarli rapidamente. Per usare il comando top per monitorare le tue risorse, usa la sintassi nel Terminale:
superiore
Comprensione dell’output:
L’output principale del comando top è diviso in colonne che sono:
- D – sonno ininterrotto
- R – correre
- S – dormire
- T – fermato
- Z – zombi
Se non conosci l’ID del processo dell’attività che desideri terminare, naviga nell’elenco utilizzando i tasti freccia o cerca il nome del processo nella tabella dei processi in Linux.
Per cercare il nome del processo, premere ‘L’ sulla tastiera e digitare il nome del processo che si desidera cercare. Una volta trovato il processo nefasto, premi “k” sulla tastiera per terminare il processo. Ora, inserisci l’ID del processo o lascialo al processo attualmente evidenziato e premi ‘INVIO’. Successivamente, inserire il segnale di terminazione e quindi premere ‘INVIO’ per terminare il programma. Per tornare al terminale, premi ‘q’ sulla tastiera.
Sebbene il comando top mostri dettagli come ID processo, consumo di memoria e altro per tutti i processi in esecuzione, non è adatto ai principianti in quanto non mostra alcuna mappatura dei tasti o come utilizzarlo. D’altra parte, il comando htop ha un’interfaccia più user-friendly, anche per uno strumento a riga di comando. Inoltre, mostra tutti i dettagli in una vista separata, quindi non ingombra la finestra del terminale. Non è preinstallato nella maggior parte delle distribuzioni ed è necessario utilizzare il seguente comando per installare htop in Linux:
sudo apt install -y htop
Per utilizzare htop per gestire i processi in Linux, utilizzare il comando seguente:
top
Per terminare un programma, passare al nome del processo che si desidera terminare, premere “F9” e quindi premere Invio. Se devi cercare e terminare qualsiasi programma, premi “F3” sulla tastiera, digita il nome e premi Invio. Il nome del processo verrà evidenziato, premere F9 e quindi premere Invio sulla tastiera per terminare il processo.
Uccidi un processo tramite System Monitor in Linux
Se ritieni che il metodo della riga di comando sia difficile per te, puoi utilizzare lo strumento di monitoraggio del sistema integrato disponibile su ogni distribuzione Linux. Per sapere come funziona, apri lo strumento di monitoraggio del sistema dal menu Applicazioni e segui i passaggi seguenti.
1. Una volta aperto lo strumento di monitoraggio del sistema, vedrai tre schede in alto denominate: Processi, Risorse e File System. Per gestire i tuoi processi, vai alla scheda “Processi”. Qui vedrai tutti i tuoi processi attualmente in esecuzione. Premere ‘CTRL+F’ per cercare un nome di processo. Fare clic sul nome del processo che si desidera terminare e fare clic su “Termina processo”.
2. Quindi, riceverai una richiesta di conferma se desideri terminare il processo o meno. Vai avanti e fai clic sul grande pulsante rosso “Termina processo” per terminare il processo in Linux.
Domande frequenti
Come posso interrompere tutti i processi in Linux?
Se è necessario arrestare tutti i processi (tranne la shell di login, init e i processi specifici del kernel) per un utente specifico in Linux, utilizzare il comando pkill o il comando killall secondo la sintassi:
pkill -u
killall -u
Se hai bisogno di uccidere ogni processo per ogni utente incluso il sistema init, premi i tasti ‘ALT + Prt Sc + o’ sulla tastiera.
Va bene terminare un processo?
Quando chiudi un processo in background non essenziale o un processo utente che consuma molta memoria di sistema, liberi le risorse che ora possono essere utilizzate da altri processi. Ma, prima di chiudere qualsiasi processo, assicurati di non interrompere un processo essenziale del sistema operativo.
Quali sono i processi in background in Linux?
In Linux, i processi in background sono processi che possono essere eseguiti senza l’istanza della shell o alcun intervento da parte dell’utente. Possono essere visualizzati utilizzando uno qualsiasi dei comandi: top, htop, ps, ecc.
Che cos’è un processo zombie?
Un processo che è stato terminato dall’utente ma occupa ancora memoria è noto come processo zombie.
Cosa fa CTRL + Z in Linux?
Quando usi CTRL + Z in Linux, invia il segnale SIGTSTP che sospende il processo e lo invia in background. Quando un processo è in uno stato sospeso in background, non è possibile terminare il processo fino a quando non viene riportato in primo piano.
Uccidi facilmente i processi in Linux
Uccidere i processi di monopolizzazione della memoria è un compito piuttosto cruciale che ogni utente dovrebbe imparare. In questo articolo, abbiamo mostrato sia il metodo della riga di comando, inclusi comandi come killall e pkill, sia i metodi della GUI per terminare i processi in Linux. Abbiamo anche dettagliato come utilizzare strumenti popolari come top e htop per gestire i processi sul tuo PC Linux. Se riscontri problemi durante l’utilizzo di questi strumenti per interrompere un processo, faccelo sapere nei commenti qui sotto.