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.