
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.