Gestione dei processi in Ubuntu Linux

Gestione dei processi in Ubuntu Linux
La gestione dei processi in Linux è un argomento importante da imparare e comprendere, in quanto è un sistema operativo multitasking e ha molti processi in corso allo stesso tempo. Linux fornisce molti strumenti per la gestione dei processi, come l'elenco dei processi di esecuzione, i processi di uccisione, l'utilizzo del sistema di monitoraggio, ecc. In Linux, ogni processo è rappresentato dal suo ID processo (PID). Esistono 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 and kill, eccetera.

Processi

L'esecuzione di un'istanza di un programma è chiamato un processo. In Linux, il processo ID (PID) viene utilizzato per rappresentare un processo distintivo per ogni processo. Esistono due tipi di processi,

  • Processi di fondo
  • Processi in primo piano

Processi di fondo

I processi di base iniziano nel terminale e gestiti da soli. Se si esegue un processo nel terminale, la sua uscita verrà visualizzata in una finestra del terminale e puoi interagire con esso, ma se non è necessario interagire con il processo, puoi eseguirlo in background. Se si desidera eseguire un processo in background, basta aggiungere 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 i processi di quotazione in esecuzione in background, utilizzare i lavori di comando.'Viene visualizzato tutti i processi in esecuzione in background.

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

ubuntu@ubuntu: ~ $ 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.

ubuntu@ubuntu: ~ $ jobs
[1]+ Esecuzione di sudo apt -get upgrade -y &

Processi in primo piano

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

È possibile portare qualsiasi processo di fondo elencato in lavori in primo piano digitando il comando "FG" seguito dal numero di processo di fondo.

ubuntu@ubuntu: ~ $ fg %1
SUDO APT -EGT Aggiornamento -y

E se vuoi portare questo processo sul tipo di sfondo questo comando.

ubuntu@ubuntu: ~ $ bg %1

Elenco e gestione dei processi con il comando PS

Il processo di quotazione con il comando PS è uno dei modi più antichi per visualizzare i processi di esecuzione del terminale. Digita il comando PS per elencare quali processi sono in esecuzione e quanta risorsa di sistema stanno utilizzando e chi li gestisce.

ubuntu@ubuntu: ~ $ ps u
Utente PID %CPU %Mem vsz RSS TTY Stat Tempo Tempo
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 PTS/0 R+ 17:19 0:00 PS U
... Snip ..

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

ubuntu@ubuntu: ~ $ kill [processo ID (PID)]

O

ubuntu@ubuntu: ~ $ kill -9 [process id (pid)]

Usa il comando PS Aux per vedere tutti i processi in esecuzione e aggiungi un tubo per vederlo in ordine.

ubuntu@ubuntu: ~ $ ps aux | meno

Se vuoi riorganizzare le colonne, puoi farlo aggiungendo una bandiera -e per elencare tutti i processi e -o per indicare le colonne da parte delle parole chiave nel comando PS.

ubuntu@ubuntu: ~ $ ps -eo pid, utente, uid,%cpu,%mem, vsz, rss, comuni
Utente PID UID %CPU %MEM VSZ RSS Comando
1 radice 0 0.1 0.1 167848 11684 Sistemata
3032 Jim 1000 16.5 4.7 21744776 386524 Chrome
... Snip ..

Opzioni per il comando PS.

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

ubuntu@ubuntu: ~ $ ps u

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

ubuntu@ubuntu: ~ $ ps f

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

ubuntu@ubuntu: ~ $ ps x

L'opzione e viene utilizzata per visualizzare informazioni estese.

ubuntu@ubuntu: ~ $ ps e

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

ubuntu@ubuntu: ~ $ ps a

L'opzione v viene utilizzata per visualizzare il formato di memoria virtuale.

ubuntu@ubuntu: ~ $ ps v

Flags per il comando PS.

-Il flag viene utilizzato per vedere ogni processo sul sistema.

ubuntu@ubuntu: ~ $ ps -e

-Il flag U viene utilizzato per vedere i processi funzionanti come root.

ubuntu@ubuntu: ~ $ ps -u

-F il flag viene utilizzato per un elenco completo dei processi.

ubuntu@ubuntu: ~ $ ps -f

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

ubuntu@ubuntu: ~ $ ps -o
pstree

Pstree è un altro comando per elencare i processi; Mostra l'output in un formato albero.

ubuntu@ubuntu: ~ $ pstree

Opzioni per il comando pstree

-N viene utilizzato per i processi di smistamento di PID.

ubuntu@ubuntu: ~ $ pstree -n

-H viene utilizzato per evidenziare i processi.

ubuntu@ubuntu: ~ $ pstree -h [pid]
ubuntu@ubuntu: ~ $ pstree -h 6457

-UN viene utilizzato per mostrare l'output, inclusi gli argomenti della riga di comando.

ubuntu@ubuntu: ~ $ pstree -a

-G viene utilizzato per mostrare i processi mediante ID di gruppo.

ubuntu@ubuntu: ~ $ pstree -g

-S viene utilizzato per seminare l'albero o il processo specifico.

ubuntu@ubuntu: ~ $ pstree -s [pid]
ubuntu@ubuntu: ~ $ pstree -s 6457

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

ubuntu@ubuntu: ~ $ pstree [nome utente]
ubuntu@ubuntu: ~ $ pstree jim
pGrep

Con il comando PGREP, è possibile trovare un processo in esecuzione basato su determinati criteri. È possibile utilizzare il nome completo o l'abbreviazione del processo per trovare o per nome utente o altri attributi. Il comando PGREP segue il seguente modello.

ubuntu@ubuntu: ~ $ pGrep [opzione] [pattern]
ubuntu@ubuntu: ~ $ pgrep -u jim chrome
Opzioni per il comando PGREP

-io viene utilizzato per la ricerca del caso insensibile

ubuntu@ubuntu: ~ $ pGrep -i Firefox

-D viene utilizzato per delimitare l'output

ubuntu@ubuntu: ~ $ pGrep -u jim -d:

-u viene utilizzato per la ricerca del processo di proprietà di un utente

ubuntu@ubuntu: ~ $ pgrep -u jim

-UN viene utilizzato per i processi di quotazione insieme ai loro comandi

ubuntu@ubuntu: ~ $ pGrep -u jim -a

-C viene utilizzato per mostrare il conteggio dei processi di corrispondenza

ubuntu@ubuntu: ~ $ pgrep -c -u jim

-l viene utilizzato per i processi di quotazione e il loro nome

ubuntu@ubuntu: ~ $ pGrep -u jim -l
pkill

Con il comando Pkill, è possibile inviare un segnale a un processo di esecuzione basato su determinati criteri. È possibile utilizzare il nome completo o l'abbreviazione del processo per trovare o per nome utente o altri attributi. Il comando PGREP segue il seguente modello.

ubuntu@ubuntu: ~ $ pkill [opzioni] [pattern]
ubuntu@ubuntu: ~ $ pkill -9 chrome
Opzioni per il comando pkill

-segnale viene utilizzato per l'invio di un segnale E.G. Sigkill, sigterm, ecc.

ubuntu@ubuntu: ~ $ pkill -SIGTERM VSCODE

-Hup viene utilizzato per ricaricare un processo

ubuntu@ubuntu: ~ $ pkill -hup syslogd

-F viene utilizzato per uccidere i processi in base alla riga di comando completa.

ubuntu@ubuntu: ~ $ pkill -f “ping 7.7.7.7 "

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

ubuntu@ubuntu: ~ $ pkill -u jim

-io viene utilizzato per l'uccisione insensibile al caso di Pkill.

ubuntu@ubuntu: ~ $ pkill -i Firefox

-9 viene utilizzato per inviare un segnale di uccisione.

ubuntu@ubuntu: ~ $ pkill -9 chrome

-15 viene utilizzato per l'invio di un segnale di terminazione.

ubuntu@ubuntu: ~ $ pkill -15 VLC
LSOF (elenco di file aperti)

Questa utilità della linea 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 utilizzare il comando LSOF per elencare tutti i file aperti.

ubuntu@ubuntu: ~ $ lsof

Nella tabella precedente 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 dalla memoria, mmap significa dispositivi mappati dalla memoria, Reg rappresenta un file normale, DiR rappresenta la directory, RTD significa directory radicale. Ci sono altre opzioni che puoi utilizzare con il comando LSOF.

Opzioni per il comando LSOF.

-C viene utilizzato per l'elenco dei file aperti con il nome del loro processo.

ubuntu@ubuntu: ~ $ lsof -c Chrome

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

ubuntu@ubuntu: ~ $ lsof -u jim

-io viene utilizzato per l'elenco dei processi che eseguono su una porta.

ubuntu@ubuntu: ~ $ lsof -i

+D viene utilizzato per l'elenco dei file aperti in una directory.

ubuntu@ubuntu: ~ $ lsof +d /home /

-P viene utilizzato per l'elenco dei file aperti mediante un processo.

ubuntu@ubuntu: ~ $ lsof -p 1342

Elenco e gestione del processo con il comando top

Con il comando in alto, è possibile visualizzare una vista in tempo reale dei processi di sistema in esecuzione. Visualizza i processi in base all'utilizzo della CPU. Puoi ordinare la colonna in base a te. Il comando superiore fornisce anche alcune informazioni sul tuo sistema, come quanto tempo è stato in esecuzione o quanti utenti sono collegati al sistema e quanti processi sono in esecuzione, quanta CPU e RAM vengono utilizzati e un elenco di ciascuno processi.

Digita il comando Top per elencare i processi in esecuzione.

ubuntu@ubuntu: ~ $ top
Attività: 291 Totale, 1 in esecuzione, 290 Sleeping, 0 Stop, 0 Zombie
%CPU (s): 2.3us, 0.3sy, 0.0ni, 97.0id, 0.3wa, 0.0HI, 0.0SI, 0.0ST
MIB MEM: 7880.6 Totale, 1259.9 gratuito, 3176 utilizzato, 3444.4 buff/cache
MIB Swap: 2048.0 totale, 2048.0 gratis, 0.0 usato. 4091.8 disponibilità di mem
PID User PR NI VIRS RES SHR S %CPU %Mem Tempo+ Comando
3241 Jim 20 0 20.7G 33512 10082 S 1.7 4.2 0:54.24 Chrome
3327 Jim 20 0 4698084 249156 86456 S 1.3 3.1 1:42.64 Chrome
2920 Jim 20 0 955400 410868 14372 S 1.0 5.1 7:51.04 Chrome
3423 Jim 20 0 4721584 198500 10106 S 1.0 2.5 0:49.00 Chrome
3030 Jim 20 0 458740 114044 66248 S 0.7 1.4 3:00.47 Chrome
3937 Jim 20 0 4610540 104908 72292 S 0.7 1.3 0:05.91 Chrome
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 Gnome-S+
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 Chrome
3388 Jim 20 0 4674192 156208 85032 S 0.3 1.9 0:13.91 Chrome
3409 Jim 20 0 4642180 140020 87304 S 0.3 1.7 0:15.36 Chrome
3441 Jim 20 0 16.5G 156396 89700 S 0.3 1.9 0:25.70 Chrome
.. .Snip .. .

Puoi anche fare alcune azioni con il comando in alto per apportare modifiche ai processi in esecuzione; Ecco l'elenco qui sotto.

  • u premendo "U" è possibile visualizzare un processo in esecuzione da un determinato utente.
  • M Premendo "M" puoi organizzare per utilizzo RAM anziché per uso della CPU.
  • P premendo "P" puoi ordinare per uso della CPU.
  • 1 premendo l'interruttore "1" tra l'utilizzo delle CPU se ce ne sono più di uno.
  • R premendo "R" puoi rendere l'ordinanza di output.
  • H premendo "H" puoi andare per aiutare e premere qualsiasi tasto per tornare.

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 rinnovati per dare loro meno importanza per il processore.

Uccidi un processo in alto: Premere K e scrivi l'ID processo che vuoi uccidere. Quindi digitare 15 o 9 per uccidere normalmente o immediatamente; Puoi anche uccidere un processo con un comando Kill o Killall.

Renice un processo in alto: Premere R e scrivi il PID del processo che desideri essere rinnovato. Ti chiederà di digitare il PID del processo e quindi il valore della nicchia che desideri fornire questo processo tra -19 a 20 (-19 significa la massima importanza e 20 significa più bassa importanza).

Elenco e gestione dei processi con il monitor di sistema

Linux ha un monitor di sistema GNOME per mostrare i processi in esecuzione in modo più dinamico. Per avviare il monitor di sistema, premere il tasto Windows e digitare il monitor di sistema, fare clic sulla sua icona e puoi vedere i processi nelle colonne. Facendo clic con il pulsante destro del mouse, puoi uccidere, fermare o rinnovare il processo.

I processi in esecuzione vengono visualizzati con account utente in ordine alfabetico. È possibile ordinare i processi per qualsiasi intestazione di campo come CPU, memoria, ecc., Basta fare clic su di loro e saranno ordinati; Ad esempio, fare clic sulla CPU per vedere quale processo consuma la maggior parte della CPU. Per gestire i processi, fare clic con il pulsante destro del mouse su di essi e selezionare l'opzione che si desidera fare con il processo. Per gestire il processo selezionare le seguenti opzioni.

  • Proprietà- Mostra altre impostazioni relative a un processo.
  • Mappe di memoria- Mostra mappe di memoria di sistema per mostrare quali libreria e altri componenti vengono utilizzati in memoria per il processo.
  • Apri il file- mostra quali file sono aperti dal processo.
  • Cambiare priorità- Visualizza una barra laterale da cui è possibile rinnovare il processo con le opzioni da molto alte a molto bassa e personalizzata.
  • Fermare- Fa una pausa il processo fino a quando non si seleziona per continuare.
  • Continua- Riavvia un processo in pausa.
  • Uccisione- La forza uccide un processo all'istante.

Uccidere un processo con Kill e Killall

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

Descrizione del numero del segnale

Sighup 1 rileva il segnale di riaggancio sul terminale di controllo.
Sigint 2 interpretato dalla tastiera.
SIGQUIT 3 smettila dalla tastiera.
Sigill 4 Istruzioni illegali.
SigTrap 5 viene utilizzato per rintracciare un trapeo.
SIGABRT 6 viene utilizzato per l'aborta del segnale da Abort (3).
Sigkill 9 viene utilizzato per l'invio di un segnale di uccisione.
Sigterm 15 viene utilizzato per l'invio di un segnale di terminazione.
SigCont 19,18,25 viene utilizzato per continuare un processo se fermato.
Sigstop 17,19,23 viene utilizzato per l'arresto dei processi.

Valori diversi di SigCont e Sigstop sono utilizzati in diversi sistemi operativi UNIX/Linux. Per informazioni dettagliate sul tipo di segnali Man 7 Segnale Terminal.

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

Nota il processo a cui si desidera inviare un segnale di uccisione. È possibile trovare l'ID processo (PID) per PS o il comando top.

PID User PR NI VIRS RES SHR S %CPU %Mem Tempo+ Comando
7780 Jim 20 0 12596 4364 3460 R 33.3 3.2 13:54:12 Top

Il processo più alto consuma 33.3% della CPU. Se vuoi uccidere questo processo per salvare l'utilizzo della CPU, ecco alcuni modi per terminare questo processo con il comando Kill.

ubuntu@ubuntu: ~ $ kill 7780
ubuntu@ubuntu: ~ $ kill -15 7780 o $ kill -sigterm 7780
ubuntu@ubuntu: ~ $ 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 processo; È possibile inviare un segnale di uccisione a un processo per nome piuttosto che un ID di processo. Può anche uccidere più processi di quello che vuoi se non stai attento, E.G., "Killall Chrome" ucciderà tutti i processi di Chrome, compresi 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 di esecuzione con il comando killall; devi solo digitare il suo nome e il segnale che desideri inviare. e.G., Invia un processo di kill segnale Firefox usando il comando killall, scrivi il comando di seguito.

ubuntu@ubuntu: ~ $ killall -9 Firefox

O

ubuntu@ubuntu: ~ $ killall sigkill chrome

Cambiare la priorità del processo con Nizza e Renice

Ogni processo sul tuo sistema Linux ha un valore eccellente ed è compreso tra -19 a 20. Decise quale processo avrebbe ottenuto più accesso alla CPU nel sistema. Più basso è il valore della bella, maggiore è l'accesso che un processo ha al processo CPU. Come -16 bei valori hanno più accesso alla CPU di 18 valori belli. Solo un utente con privilegi di root può assegnare un valore negativo di NICE. Un utente normale può assegnare solo il valore di "NICE" tra 0 e 19. Un utente normale può assegnare solo valori più alti e sui propri processi. Un utente di root può impostare qualsiasi buon valore su qualsiasi processo.

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

ubuntu@ubuntu: ~ $ nice +3 chrome

E Renice il processo

ubuntu@ubuntu: ~ $ 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 e della RAM della CPU; Sapere come gestirli aumenta la velocità e le prestazioni del sistema e ti dà un ambiente migliore per eseguire tutti i processi che desideri in modo più efficiente.