Gestione dei processi

Gestione dei processi in Ubuntu Linux

Gestione dei processi in Ubuntu Linux
La gestione dei processi in Linux è un argomento importante da apprendere e comprendere, poiché è un sistema operativo multitasking e ha molti processi in corso contemporaneamente. Linux fornisce molti strumenti per la gestione dei processi, come elencare i processi in esecuzione, terminare i processi, monitorare l'utilizzo del sistema, ecc. In Linux, ogni processo è rappresentato dal suo Process ID (PID). Ci sono alcuni altri attributi al processo come ID utente e ID gruppo se un utente o un gruppo esegue il processo. A volte devi uccidere o interagire con un processo, quindi dovresti sapere come gestire questi processi per far funzionare il tuo sistema senza intoppi. In Linux, i processi possono essere gestiti con comandi come ps, pstree, pgrep, pkill, lsof, top, nice, renice e kill, eccetera.

Processi

L'esecuzione di un'istanza di un programma si chiama processo. In Linux, l'ID processo (PID) viene utilizzato per rappresentare un processo che è distintivo per ogni processo. Ci sono due tipi di processi,

Processi in background

I processi in background iniziano nel terminale e vengono eseguiti da soli. Se esegui un processo nel terminale, il suo output verrà visualizzato in una finestra del terminale e puoi interagire con esso, ma se non hai bisogno di interagire con il processo, puoi eseguirlo in background. Se vuoi eseguire un processo in background, aggiungi semplicemente un segno "&" alla fine del comando e inizierà a funzionare in background; ti farà risparmiare tempo e sarai in grado di avviare un altro processo. Per elencare i processi in esecuzione in background, usa il comando "jobs".' Mostrerà tutti i processi in esecuzione in background.

Ad esempio, l'aggiornamento è un processo lungo in Linux. Ci vuole troppo tempo e se vuoi fare altre cose mentre il sistema si aggiorna, usa il comando in background.

[email protected]:~$ sudo apt-get upgrade -y &

Inizierà a funzionare in background. E puoi interagire con altri programmi nel frattempo. Puoi controllare quanti e quali processi sono in esecuzione in background digitando questo comando.

[email protected]:~$ lavori
[1]+ Esecuzione di sudo apt-get upgrade -y &

Processi in primo piano

Tutti i processi che eseguiamo nel terminale sono, per impostazione predefinita, eseguiti come processi in primo piano. Possiamo gestirli con i comandi in primo piano e in background.

Puoi portare in primo piano qualsiasi processo in background elencato nei lavori digitando il comando 'fg' seguito dal numero del processo in background.

[email protected]:~$ fg %1
sudo apt-get upgrade -y

E se vuoi portare questo processo in background, digita questo comando.

[email protetta]:~$ bg %1

Elenco e gestione dei processi con il comando ps

Il processo di elenco con il comando ps è uno dei modi più vecchi per visualizzare i processi in esecuzione sul terminale. Digita il comando ps per elencare quali processi sono in esecuzione e quante risorse di sistema stanno utilizzando e chi li sta eseguendo.

[e-mail protetta]:~$ ps u
PID UTENTE %CPU %MEM VSZ RSS TTY STAT COMANDO ORA INIZIO
Jim 1562 0.0 0.0 164356 6476 tty2 Ssl+ 13:07 0:00 shell
Jim 1564 5.2 0.9 881840 78704 tty2 Sl+ 3:07 13:13 dauth
Jim 2919 0.0 0.0 11328 4660 punti/0 Ss 13:08 0:00 bash
Jim 15604 0.0 0.0 11836 3412 punti/0 V+ 17:19 0:00 punti u
…tagliare…

La colonna utente mostra il nome utente nella tabella sopra e il PID mostra l'id del processo. Puoi usare il PID per uccidere o inviare il segnale di kill a un processo. %CPU mostra la percentuale del processore della CPU e %MEM mostra l'utilizzo della memoria ad accesso casuale. Per terminare un processo, digita.

[email protected]:~$ kill [ID processo (PID)]

o

[email protected]:~$ kill -9 [ID processo (PID)]

Usa il comando ps aux per vedere tutti i processi in esecuzione e aggiungi una pipe per vederli in ordine.

[email protected]:~$ ps aux | Di meno

Se vuoi riordinare le colonne, puoi farlo aggiungendo un flag -e per elencare tutti i processi e -o per indicare le colonne tramite parole chiave nel comando ps.

[email protected]:~$ps -eo pid,user,uid,%cpu,%mem,vsz,rss,comm
PID UTENTE UID %CPU %MEM VSZ RSS COMANDO
1 radice 0 0.1 0.1 167848 11684 sistemato
3032 jim 1000 16.5 4.7 21744776 386524 cromato
…taglia…

Opzioni per il comando ps.

l'opzione u viene utilizzata per elencare i processi dagli utenti.

[e-mail protetta]:~$ ps u

L'opzione f viene utilizzata per visualizzare l'elenco completo.

[e-mail protetta]:~$ ps f

l'opzione x viene utilizzata per visualizzare le informazioni sul processo senza un terminale.

[e-mail protetta]:~$ ps x

L'opzione viene utilizzata per visualizzare informazioni estese.

[e-mail protetta]:~$ ps e

un'opzione viene utilizzata per elencare tutti i processi con il terminale.

[e-mail protetta]:~$ ps a

l'opzione v viene utilizzata per visualizzare il formato della memoria virtuale.

[e-mail protetta]:~$ ps v

Flag per il comando ps.

-Il flag è usato per vedere ogni processo sul sistema.

[e-mail protetta]:~$ ps -e

-u flag è usato per vedere i processi in esecuzione come root.

[e-mail protetta]:~$ ps -u

-f flag viene utilizzato per un elenco completo dei processi.

[e-mail protetta]:~$ ps -f

-o flag viene utilizzato per elencare i processi nella colonna desiderata.

[e-mail protetta]:~$ ps -o
pstree

pstree è un altro comando per elencare i processi; mostra l'output in un formato ad albero.

[email protected]:~$ pstree

Opzioni per il comando pstree

-n viene utilizzato per i processi di smistamento da PID.

[email protected]:~$ pstree -n

-H viene utilizzato per evidenziare i processi.

[email protected]:~$ pstree -H [PID]
[email protected]:~$ pstree -H 6457

-un è usato per mostrare l'output, inclusi gli argomenti della riga di comando.

[email protected]:~$ pstree -a

-g è usato per mostrare i processi per id di gruppo.

[email protected]:~$ pstree -g

-S viene utilizzato per la semina dell'albero o per un processo specifico.

[email protected]:~$ pstree -s [PID]
[email protected]:~$ pstree -s 6457

[nome utente] viene utilizzato per mostrare i processi di proprietà di un utente.

[email protected]:~$ pstree [userName]
[email protected]:~$ pstree jim
pgrep

Con il comando pgrep, puoi trovare un processo in esecuzione basato su determinati criteri. Puoi utilizzare il nome completo o l'abbreviazione del processo per trovare o per nome utente o altri attributi. Il comando pgrep segue il seguente schema.

[email protected]:~$ Pgrep [opzione] [schema]
[email protected]:~$ pgrep -u jim chrome
Opzioni per il comando pgrep

-io viene utilizzato per la ricerca senza distinzione tra maiuscole e minuscole

[email protected]:~$ Pgrep -i firefox

-d viene utilizzato per delimitare l'uscita

[email protected]:~$ Pgrep -u jim -d:

-tu viene utilizzato per trovare il processo di proprietà di un utente

[email protected]:~$ Pgrep -u jim

-un è usato per elencare i processi insieme ai loro comandi

[email protected]:~$ Pgrep -u jim -a

-c è usato per mostrare il conteggio dei processi di corrispondenza

[email protected]:~$ Pgrep -c -u jim

-io è usato per elencare i processi e il loro nome

[email protected]:~$ Pgrep -u jim -l
pkill

Con il comando pkill, puoi inviare un segnale a un processo in esecuzione in base a determinati criteri. Puoi utilizzare il nome completo o l'abbreviazione del processo per trovare o per nome utente o altri attributi. Il comando pgrep segue il seguente schema.

[email protected]:~$ Pkill [Opzioni] [Modelli]
[email protected]:~$ Pkill -9 chrome
Opzioni per il comando pkill

-segnale viene utilizzato per inviare un segnale e.g. SIGKILL, SIGTERM, ecc.

[email protected]:~$ Pkill --signal SIGTERM vscode

-HUP viene utilizzato per ricaricare un processo

[email protected]:~$ Pkill -HUP syslogd

-f è usato per uccidere i processi basati sull'intera riga di comando.

[email protected]:~$ Pkill -f “ping 7.7.7.7"

-tu viene utilizzato per uccidere tutti i processi di proprietà di un utente.

[email protected]:~$ Pkill -u jim

-io viene utilizzato per l'uccisione del processo senza distinzione tra maiuscole e minuscole da pkill.

[email protected]:~$ Pkill -i firefox

-9 viene utilizzato per inviare un segnale di uccisione.

[email protected]:~$ Pkill -9 chrome

-15 viene utilizzato per inviare un segnale di terminazione.

[e-mail protetta]:~$ Pkill -15 vlc
lsof (elenco dei file aperti)

Questa utility da riga di comando viene utilizzata per elencare i file aperti da diversi processi. E come sappiamo, tutti i sistemi UNIX/Linux riconoscono tutto come un file, quindi è conveniente usare il comando lsof per elencare tutti i file aperti.

[email protected]:~$ lsof

Nella tabella sopra del comando lsof, FD rappresenta la descrizione del file, cwd rappresenta la directory di lavoro corrente, txt significa file di testo, mem significa file mappati in memoria, mmap significa dispositivi mappati in memoria, REG rappresenta un file normale, DIR rappresenta Directory, rtd significa directory principale. Ci sono altre opzioni che puoi usare con il comando lsof.

Opzioni per il comando lsof.

-c viene utilizzato per l'elenco dei file aperti in base al nome del processo.

[email protected]:~$ lsof -c chrome

-tu viene utilizzato per l'elenco dei file aperti da un utente.

[email protected]:~$ lsof -u jim

-io è usato per l'elenco dei processi in esecuzione su una porta.

[e-mail protetta]:~$ lsof -i

+D è usato per l'elenco dei file aperti in una directory.

[email protected]:~$ lsof +D /home/

-p viene utilizzato per l'elenco dei file aperti da un processo.

[e-mail protetta]:~$ lsof -p 1342

Elenco e gestione del processo con il comando superiore

Con il comando top, puoi visualizzare una vista in tempo reale dei processi di sistema in esecuzione. Visualizza i processi a seconda dell'utilizzo della CPU. Puoi ordinare la colonna secondo te. Il comando top fornisce anche alcune informazioni sul tuo sistema, come da quanto tempo il sistema è in funzione o quanti utenti sono collegati al sistema e quanti processi sono in esecuzione, quanta CPU e RAM vengono utilizzate e un elenco di ciascuno processi.

Digita il comando top per elencare i processi in esecuzione.

[e-mail protetta]:~$ in alto
Compiti: 291 in totale, 1 in esecuzione, 290 a pelo, 0 fermi, 0 zombi
%Cpu(s): 2.3us, 0.3sy, 0.0ni, 97.0id, 0.3wa, 0.0ciao, 0.0si, 0.0st
MiB Mem: 7880.6 in totale, 1259.9 liberi, 3176 usati, 3444.4 buff/cache
Scambio MiB: 2048.0 totale, 2048.0 gratis, 0.0 usato. 4091.8 disp
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMANDO
3241 jim 20 0 20.7g 33512 10082 S 1.7 4.2 0:54.24 cromo
3327 jim 20 0 4698084 249156 86456 S 1.3 3.1 1:42.64 cromo
2920 jim 20 0 955400 410868 14372 S 1.0 5.1 7:51.04 cromo
3423 jim 20 0 4721584 198500 10106 S 1.0 2.5 0:49.00 cromo
3030 jim 20 0 458740 114044 66248 S 0.7 1.4 3:00.47 cromo
3937 jim 20 0 4610540 104908 72292 S 0.7 1.3 0:05.91 cromo
1603 jim 20 0 825608 67532 40416 S 0.3 0.8 3:13.52 Xorg
1756 jim 20 0 4154828 257056 10060 S 0.3 3.2 5:53.31 gnomo+
1898 jim 20 0 289096 29284 5668 S 0.3 0.4 1:06.28 fusuma
3027 jim 20 0 587580 14304 75960 S 0.3 1.8 9:43.59 cromo
3388 jim 20 0 4674192 156208 85032 S 0.3 1.9 0:13.91 cromo
3409 jim 20 0 4642180 140020 87304 S 0.3 1.7 0:15.36 cromo
3441 jim 20 0 16.5g 156396 89700 S 0.3 1.9 0:25.70 cromo
… .taglia.. .

Puoi anche eseguire alcune azioni con il comando top per apportare modifiche ai processi in esecuzione; ecco la lista qui sotto.

Nota quale processo consuma più memoria o CPU. Quei processi che consumano più memoria possono essere uccisi e quei processi che consumano più CPU possono essere renicizzati per dare loro meno importanza per il processore.

Uccidi un processo in alto: stampa K e scrivi l'ID processo che vuoi uccidere. Quindi digita 15 o 9 per uccidere normalmente o immediatamente; puoi anche uccidere un processo con un comando kill o killall.

Renice un processo in alto: stampa r e scrivi il PID del processo che vuoi riniciare. Ti chiederà di digitare il PID del processo e quindi il valore di nicing che vuoi dare a questo processo tra -19 e 20 (-19 significa l'importanza massima e 20 significa l'importanza minima).

Elenco e gestione dei processi con System Monitor

Linux ha un monitor di sistema gnome per mostrare i processi in esecuzione in modo più dinamico. Per avviare il monitor di sistema, premi il tasto Windows e digita il monitor di sistema, fai clic sulla sua icona e puoi vedere i processi in colonne. Facendo clic con il pulsante destro del mouse, puoi interrompere, interrompere o modificare il processo.

I processi in esecuzione vengono visualizzati con gli account utente in ordine alfabetico. Puoi ordinare i processi in base a qualsiasi intestazione di campo come CPU, Memoria, ecc., basta fare clic su di essi e verranno ordinati; ad esempio, fai clic su CPU per vedere quale processo consuma più potenza della CPU. Per gestire i processi, fai clic con il pulsante destro del mouse su di essi e seleziona l'opzione che desideri eseguire con il processo. Per gestire il processo selezionare le seguenti opzioni.

Uccidere un processo con kill e killall

kill e il comando killall viene utilizzato per uccidere/terminare un processo in esecuzione. Questi comandi possono essere utilizzati anche per inviare un segnale valido a un processo in esecuzione, come dire a un processo di continuare, terminare o rileggere i file di configurazione, ecc. I segnali possono essere scritti in entrambi i modi con numeri o con il nome. Di seguito sono riportati alcuni segnali comunemente usati.

Numero segnale Descrizione

SIGHUP 1 Rileva il segnale di riaggancio sul terminale di controllo.
SIGINT 2 Interpretato dalla tastiera.
SIGQUIT 3 Esci dalla tastiera.
SIGILL 4 Istruzioni illegali.
SIGTRAP 5 Si usa per tracciare una trape.
SIGABRT 6 viene utilizzato per interrompere il segnale da abort(3).
SIGKILL 9 Viene utilizzato per inviare un segnale di uccisione.
SIGTERM 15 Viene utilizzato per inviare un segnale di terminazione.
SIGCONT 19,18,25 Viene utilizzato per continuare un processo se interrotto.
SIGSTOP 17,19,23 Viene utilizzato per arrestare i processi.

Diversi valori di SIGCONT e SIGSTOP sono utilizzati in diversi sistemi operativi Unix/Linux. Per informazioni dettagliate sui segnali tipo terminale di segnale man 7.

Utilizzo del comando kill per l'invio del segnale da elaborare tramite PID.

Nota il processo a cui vuoi inviare un segnale di kill kill. Puoi trovare l'ID del processo (PID) tramite ps o comando top.

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMANDO
7780 jim 20 0 12596 4364 3460 R 33.3 3.2 13:54:12 in alto

Il processo superiore sta consumando 33.3% della CPU. Se vuoi terminare questo processo per risparmiare l'utilizzo della CPU, ecco alcuni modi per terminare questo processo con il comando kill.

[email protected]:~$ kill 7780
[email protected]:~$ kill -15 7780 o $ kill -SIGTERM 7780
[email protected]:~$ kill -9 7780 o $ kill -SIGKILL 7780

Utilizzo del comando killall per inviare segnali a un processo per nome.

Con il comando killall, non devi cercare l'id del processo; puoi inviare un segnale kill a un processo per nome anziché per ID processo. Può anche uccidere più processi di quanto desideri se non stai attento, e.g., "killall chrome" ucciderà tutti i processi di Chrome, inclusi quelli che non vuoi uccidere. A volte è utile uccidere i processi con lo stesso nome.

Come il comando kill, puoi digitare i segnali per nome o per numero nel comando killall. Uccidi qualsiasi processo in esecuzione con il comando killall; devi solo digitare il suo nome e il segnale che vuoi inviare. e.g., invia un kill signal process firefox usando il comando killall, scrivi il comando seguente.

[email protected]:~$ killall -9 firefox

o

[email protected]:~$ killall SIGKILL chrome

Modificare la priorità del processo con nice e renice

Ogni processo sul tuo sistema Linux ha un valore eccellente ed è compreso tra -19 e 20. Ha deciso quale processo avrebbe ottenuto più accesso alla CPU nel sistema. Più basso è il valore di nice, più accesso ha un processo al processo della CPU. Come -16 valori piacevoli hanno più accesso alla CPU di 18 valori piacevoli nice. Solo un utente con privilegi di root può assegnare un valore negativo di nice. Un utente normale può assegnare solo il valore di “nice” compreso tra 0 e 19. Un utente normale può assegnare solo valori di Nizza più elevati e sui propri processi. Un utente root può impostare qualsiasi buon valore per qualsiasi processo.

Se vuoi dare un processo più accessibile all'utilizzo della CPU assegnando il valore nice, digita il seguente comando.

[email protected]:~$ nice +3 chrome

E perfeziona il processo

[email protected]:~$ renice -n -6 3612

Conclusione

Ecco la guida per gestire il tuo sistema Linux con ps, top, lsof, pstree, pkilll, kill, killall, nice, renice, ecc. Alcuni processi consumano la maggior parte dell'utilizzo della CPU e della RAM; sapere come gestirli aumenta la velocità e le prestazioni del tuo sistema e ti offre un ambiente migliore per eseguire tutti i processi che desideri in modo più efficiente.

Come modificare il puntatore del mouse e le dimensioni, il colore e lo schema del cursore su Windows 10
Il puntatore del mouse e il cursore in Windows 10 sono aspetti molto importanti del sistema operativo. Questo si può dire anche per altri sistemi oper...
Motori di gioco gratuiti e open source per lo sviluppo di giochi Linux
Questo articolo tratterà un elenco di motori di gioco gratuiti e open source che possono essere utilizzati per lo sviluppo di giochi 2D e 3D su Linux....
Tutorial Shadow of the Tomb Raider per Linux
Shadow of the Tomb Raider è la dodicesima aggiunta alla serie Tomb Raider, un franchise di giochi d'azione e avventura creato da Eidos Montreal. Il gi...