GNU/Linux >> Linux Esercitazione >  >> Linux

Comando Pstree in Linux

Quando si lavora su una macchina Linux, a volte potrebbe essere necessario scoprire quali processi sono attualmente in esecuzione. Esistono numerosi comandi che puoi utilizzare per trovare informazioni sui processi in esecuzione, con ps e top essendo quelli più comunemente usati.

In questo articolo parleremo di pstree comando. È simile a ps , ma invece di elencare i processi in esecuzione, li mostra in un albero. Il formato ad albero è un modo più conveniente per visualizzare la gerarchia dei processi e rende l'output visivamente più accattivante.

Come utilizzare pstree Comando #

La sintassi generale per pstree il comando è il seguente:

ps [OPTIONS] [USER or PID]

Nella sua forma più semplice quando viene invocato senza alcuna opzione o argomento, pstree visualizza una struttura ad albero gerarchica di tutti i processi in esecuzione:

pstree
systemd─┬─VBoxService───7*[{VBoxService}]
        ├─accounts-daemon───2*[{accounts-daemon}]
        ├─2*[agetty]
        ├─atd
        ├─cron
        ├─dbus-daemon
        ├─irqbalance───{irqbalance}
        ├─2*[iscsid]
        ├─lvmetad
        ├─lxcfs───2*[{lxcfs}]
        ├─networkd-dispat───{networkd-dispat}
        ├─nginx───2*[nginx]
...

L'elemento principale/principale nell'albero è il processo padre di tutti i processi di sistema. In questo esempio è systemd , che è il primo processo che si avvia all'avvio.

pstree unisce rami identici inserendoli tra parentesi quadre e anteponendoli con un numero intero che rappresenta il numero di rami. Ciò rende l'output più leggibile e visivamente accattivante.

Di seguito è riportato un esempio che mostra come vengono utilizzate le parentesi quadre:

├─2*[agetty]

è uguale a:

├─agetty        
├─agetty

Per disabilitare l'unione dei rami identici, usa il -c opzione:

pstree -c

I thread di un processo vengono visualizzati sotto il processo padre e visualizzati utilizzando il nome del processo tra parentesi graffe. Ecco un esempio:

├─lxcfs───2*[{lxcfs}]

Usa il -t opzione per mostrare i nomi dei thread completi. Se vuoi nascondere i thread e mostrare solo i processi, usa il -T opzione.

Tipicamente, pstree visualizza molte righe di output che non si adattano allo schermo. Per visualizzare l'output una pagina alla volta, invialo tramite pipe a less comando:

pstree | less

Se viene fornito un nome utente come argomento, pstree mostra solo i processi di proprietà di quell'utente. Ad esempio, il comando seguente mostrerà solo quei processi che sono stati avviati da un utente chiamato "linuxize":

pstree linuxize

Quando il PID è specificato come argomento, pstree visualizza un albero con il processo specificato come radice dell'albero. Ecco un esempio:

pstree 1943
sshd───bash───pstree

Per mostrare i processi principali di un determinato processo, usa -s opzione seguita dal PID di processo:

pstree -s 1943
systemd───sshd───sshd───bash───pstree

Mostra PID e PGID #

Di solito, quando si esegue pstree comando, l'informazione più importante che l'utente sta cercando è l'ID del processo. Ad esempio, conoscere il PID consente di interrompere un processo malfunzionante.

Il -p l'opzione indica pstree per mostrare i PID:

pstree -p

I PID vengono visualizzati tra parentesi dopo ogni processo o thread.

systemd(1)─┬─VBoxService(955)─┬─{VBoxService}(956)
           │                  ├─{VBoxService}(957)
           │                  ├─{VBoxService}(958)
           │                  ├─{VBoxService}(959)
           │                  ├─{VBoxService}(960)
           │                  ├─{VBoxService}(961)
           │                  └─{VBoxService}(962)
...

Per impostazione predefinita, pstree , ordina i processi con lo stesso genitore per nome. Il -n l'opzione dice a pstree per utilizzare l'ordinamento numerico, ovvero l'ordinamento per PID:

pstree -pn

L'ID del gruppo di processi o PGID è l'ID di processo del primo membro del gruppo di processi. Per visualizzare i PGID utilizzare il -g opzione:

pstree -g

I PID vengono visualizzati anche tra parentesi dopo ogni processo o thread.

systemd(1)─┬─VBoxService(954)─┬─{VBoxService}(954)
           │                  ├─{VBoxService}(954)
           │                  ├─{VBoxService}(954)
           │                  ├─{VBoxService}(954)
           │                  ├─{VBoxService}(954)
           │                  ├─{VBoxService}(954)
           │                  └─{VBoxService}(954)
...

Quando vengono visualizzati PID o PGID, l'unione è implicitamente disabilitata.

Mostra argomenti della riga di comando #

Alcuni programmi possono essere invocati con opzioni di configurazione specificate come argomenti della riga di comando.

Per impostazione predefinita, il pstree non mostra gli argomenti della riga di comando per i processi in esecuzione. Per vedere come è stato avviato il processo, usa il comando insieme a -a opzione:

pstree -a
...
  ├─agetty -o -p -- \\u --keep-baud 115200,38400,9600 ttyS0 vt220
  ├─agetty -o -p -- \\u --noclear tty1 linux
...

Evidenziazione #

pstree consente inoltre di evidenziare i processi per una migliore rappresentazione visiva.

Il -h l'opzione indica pstree per evidenziare il processo in corso e tutti i suoi antenati.

pstree -h

Per evidenziare un processo specifico, usa -H opzione seguita dall'ID del processo:

pstree -H PID_NUMBER

Se l'evidenziazione non è supportata, il comando uscirà con un errore.

Conclusione #

La pstree comando mostra i processi in esecuzione sotto forma di una struttura ad albero.

Per informazioni su tutti i pstree disponibili opzioni, digita man pstree nel tuo terminale.

Se hai domande o feedback, sentiti libero di lasciare un commento.


Linux
  1. comando IP Linux

  2. comando cd di Linux

  3. Opzioni di comando nohup in Linux

  4. renice Esempi di comandi in Linux

  5. Esempi di comandi pkill in Linux

Al comando in Linux

Comando Killall in Linux con esempi

5 modi rapidi per uccidere un processo in Linux

Comando Df in Linux

Come KILL un processo su Linux

Esempi di comandi pstree in Linux