GNU/Linux >> Linux Esercitazione >  >> Linux

Comandi per la gestione dei processi in Linux

In questo articolo parleremo della gestione dei processi in Linux. Un processo in Linux non è altro che un programma in esecuzione. È un'istanza in esecuzione di un programma. Qualsiasi comando eseguito avvia un processo.

Tipi di processi in Linux

In Linux i processi possono essere di due tipi:

  • Processi in primo piano
    dipendono dall'utente per l'input
    detti anche processi interattivi
  • Processi in background
    eseguire indipendentemente dall'utente
    detti processi non interattivi o automatici

Stati di processo in Linux

Un processo in Linux può passare attraverso diversi stati dopo essere stato creato e prima che sia terminato. Questi stati sono:

  • Correndo
  • Dormire
    • Sonno interrompibile
    • Sonno ininterrotto
  • Arrestato
  • Zombie
  • Un processo in esecuzione state significa che è in esecuzione o è pronto per l'esecuzione.
  • Il processo è in modalità dormiente indica quando è in attesa che una risorsa sia disponibile.
  • Un processo in sonno interrompibile si sveglierà per gestire i segnali, mentre un processo in Sospensione ininterrotta non lo farà.
  • Un processo entra in interrotto stato quando riceve un segnale di arresto.
  • Zombie lo stato è quando un processo è morto ma la voce per il processo è ancora presente nella tabella.

Diversi comandi per la gestione dei processi in Linux

Ci sono due comandi disponibili in Linux per tenere traccia dei processi in esecuzione. Questi due comandi sono In alto e Ps .

1. Il comando principale per la gestione dei processi Linux

Per tenere traccia dei processi in esecuzione sulla tua macchina puoi usare il comando in alto.

$ top 

Il comando Top visualizza un elenco di processi in esecuzione in tempo reale insieme alla memoria e all'utilizzo della CPU. Comprendiamo un po' meglio l'output:

  • PID :ID processo univoco assegnato a ciascun processo.
  • Utente :nome utente del titolare del processo.
  • PR :Priorità data a un processo durante la pianificazione.
  • NI: valore "piacevole" di un processo.
  • VIRT :quantità di memoria virtuale utilizzata da un processo.
  • RES :quantità di memoria fisica utilizzata da un processo.
  • SHR :quantità di memoria condivisa con altri processi.
  • S :stato del processo
    • 'D' =sonno ininterrotto
    • 'R' =in esecuzione 
    • 'S' =dormire 
    • 'T' =tracciato o interrotto 
    • 'Z' =zombi
  • %CPU :percentuale di CPU utilizzata dal processo.
  • %MEM; Percentuale di RAM utilizzata dal processo.
  • TEMPO+: Tempo CPU totale consumato dal processo.
  • Comando :Comando utilizzato per attivare il processo.

Puoi utilizzare su/giù tasti freccia per navigare su e giù nell'elenco. Per uscire premi q . Per terminare un processo, evidenzia il processo con i tasti freccia su/giù e premi "k".

In alternativa, puoi anche usare il comando kill, che vedremo più avanti.

2. comando ps

Il comando ps è l'abbreviazione di "Stato processo". Visualizza i processi attualmente in esecuzione. Tuttavia, a differenza del comando top, l'output generato non è in tempo reale.

$ ps

La terminologia è la seguente:

PID ID processo
TTY tipo di terminale
TEMPO tempo totale di esecuzione del processo
CMD nome del comando che avvia il processo

Per ottenere maggiori informazioni usando il comando ps usa:

$ ps -u

Qui:

  • %CPU rappresenta la quantità di potenza di calcolo utilizzata dal processo.
  • %MEM rappresenta la quantità di memoria che il processo sta occupando.
  • STAT rappresenta lo stato del processo.

Sebbene il comando ps visualizzi solo i processi attualmente in esecuzione, puoi anche usarlo per elencare tutti i processi.

$ ps -A 

Questo comando elenca anche quei processi che attualmente non sono in esecuzione.

3. Arresta un processo

Per interrompere un processo in Linux, usa "kill" comando. Il comando kill invia un segnale al processo.

Ci sono diversi tipi di segnali che puoi inviare. Tuttavia, il più comune è "kill -9" che è "SIGKILL '.

Puoi elencare tutti i segnali usando:

$ kill -L

Il segnale predefinito è 15, che è SIGTERM . Ciò significa che se usi semplicemente il comando kill senza alcun numero, invia il segnale SIGTERM.

La sintassi per uccidere un processo è:

$ kill [pid]

In alternativa puoi anche usare :

$ kill -9 [pid]

Questo comando invierà un segnale "SIGKILL" al processo. Questo dovrebbe essere usato nel caso in cui il processo ignori una normale richiesta di eliminazione.

4. Modificare la priorità di un processo

In Linux, puoi stabilire la priorità tra i processi. Il valore di priorità per un processo è chiamato valore di "bellezza". Il valore della gentilezza può variare da –20 a 19 . 0 è il valore predefinito.

La quarta colonna nell'output del comando top è la colonna per il valore della gentilezza.

Per avviare un processo e dargli un valore diverso da quello predefinito, usa:

$ nice -n [value] [process name]

Per cambiare un bel valore di un processo che è già in esecuzione usa:

renice [value] -p 'PID'

Conclusione

Questo tutorial ha trattato la gestione dei processi in Linux. Sono stati trattati principalmente gli aspetti pratici della gestione dei processi. In teoria, la gestione dei processi è un argomento vasto e trattarlo nella sua interezza non rientra nell'ambito di questo tutorial.


Linux
  1. I miei comandi Linux preferiti per l'ottimizzazione delle immagini web

  2. Cheat sheet per i comandi Linux comuni

  3. 30 Esercizi sui processi Linux per amministratori di sistema

  4. Gestire i processi in Ubuntu Linux

  5. Equivalente di Process Monitor per Linux?

Come uccidere un processo in Linux? Comandi per terminare

Come elencare i processi in esecuzione in Linux

Comando Ps in Linux (Elenca processi)

Come uccidere i processi Zombie in Linux

Monitoraggio dei processi su Linux

Comandi di gestione dei gruppi in Linux