Come terminare un processo in Linux

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.

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).

  Come giocare a Little Nightmares su Linux

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 è facoltativo e il comando kill invia il segnale SIGTERM (15) per impostazione predefinita. Puoi inviare qualsiasi altro segnale in base al suo valore numerico o al nome effettivo del segnale dalla tabella sopra.

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.

  Come eseguire lo streaming di giochi Steam sul desktop Linux

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:

  • PID: mostra l’ID del processo in esecuzione
  • Utente: mostra il proprietario del processo
  • PR – mostra il valore di priorità del processo assegnato dal sistema operativo
  • NI – mostra i bei valori che sono come assegnare valori spaziati dall’utente per controllare manualmente la priorità di un’attività.
  • VIRT: mostra la quantità di memoria virtuale utilizzata dal processo.
  • RES – mostra la quantità di memoria fisica utilizzata dal processo
  • SHR: mostra la quantità di memoria condivisa da altri processi
  • S – mostra lo stato attuale del processo che può essere:
    • D – sonno ininterrotto
    • R – correre
    • S – dormire
    • T – fermato
    • Z – zombi
  • %CPU – Mostra la quantità di CPU utilizzata dal processo in percentuale
  • %MEM – Mostra la quantità di RAM utilizzata dal processo in percentuale
  • TIME+ – Mostra il tempo totale di esecuzione del processo
  • Comando: mostra quale comando è stato richiamato per il processo.
  • 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

      Come giocare a Elite Dangerous su Linux

    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.