Poiché ogni processo (tranne il primo in assoluto) in un sistema Linux ha un genitore, a volte rende le cose più facili da capire se tutti i processi sono visualizzati in una struttura ad albero. Sarai felice di sapere che esiste un'utilità da riga di comando, denominata pstree - che mostra un albero di processi.
In questo tutorial, discuteremo le basi del comando pstree usando alcuni esempi di facile comprensione. Ma prima di farlo, vale la pena ricordare che tutti gli esempi qui presenti sono stati testati su una macchina Ubuntu 16.04 LTS.
Comando Linux pstree
Come già accennato all'inizio, il comando pstree mostra un albero di processi. Di seguito è riportata la sua sintassi:
pstree [options]
Ed ecco cosa dice a riguardo la pagina man dello strumento:
pstree shows running processes as a tree. The tree is rooted at either
pid or init if pid is omitted. If a user name is specified, all
process trees rooted at processes owned by that user are shown.
pstree visually merges identical branches by putting them in square
brackets and prefixing them with the repetition count, e.g.
init-+-getty
|-getty
|-getty
`-getty
becomes
init---4*[getty]
Child threads of a process are found under the parent process and are
shown with the process name in curly braces, e.g.
icecast2---13*[{icecast2}]
If pstree is called as pstree.x11 then it will prompt the user at the
end of the line to press return and will not return until that has hap?
pened. This is useful for when pstree is run in a xterminal.
Certain kernel or mount parameters, such as the hidepid option for
procfs, will hide information for some processes. In these situations
pstree will attempt to build the tree without this information, showing
process names as question marks.
Di seguito sono riportati alcuni esempi in stile domande e risposte che dovrebbero darti una buona idea su come funziona il comando pstree:
Q1. Come usare il comando pstree?
L'utilizzo di base è semplice:tutto ciò che devi fare è eseguire 'pstree' senza alcuna opzione.
pstree
Quindi puoi vedere questo è il modo in cui pstree produce informazioni relative al processo in output.
Q2. Come fare in modo che pstree includa anche gli argomenti della riga di comando nell'output?
Questo può essere fatto usando l'opzione -a della riga di comando.
pstree -a
Quindi puoi vedere che il comando pstree ora mostra anche le opzioni della riga di comando per alcuni processi.
T3. Come forzare pstree a espandere sottostrutture identiche nell'output?
Per impostazione predefinita, il comando pstree unisce rami identici inserendoli tra parentesi quadre e anteponendoli con il conteggio delle ripetizioni. Qualcosa del genere:
Tuttavia, se lo desideri, puoi forzare lo strumento a espandere alberi identici, cosa che puoi fare usando l'opzione della riga di comando -c.
pstree -c
Q4. Come fare in modo che pstree evidenzi un processo specifico?
Nel caso in cui desideri che lo strumento evidenzi un processo specifico nell'output, utilizza l'opzione della riga di comando -H.
pstree -H [PID]
Dove PID è l'ID del processo che si desidera evidenziare. Ad esempio, ho evidenziato il processo Firefox sul mio sistema usando il seguente comando:
pstree -H 3124
Quindi puoi vedere che il nome 'firefox' è leggermente evidenziato rispetto ad altri nomi.
Q5. In che modo pstree mostra gli ID dei gruppi di processi nell'output?
Per questo, usa l'opzione della riga di comando -g.
pstree -g
Quindi puoi vedere che gli ID dei gruppi di processi sono mostrati come numeri decimali tra parentesi dopo ogni nome di processo.
Q6. Come creare processi di ordinamento pstree basati su PID?
Per impostazione predefinita, pstree ordina i processi con lo stesso predecessore per nome. Tuttavia, se lo desideri, puoi avere anche processi di ordinamento pstree per PID, cosa che puoi fare usando l'opzione -n della riga di comando.
pstree -n
Tieni presente che questo tipo di ordinamento è anche noto come ordinamento numerico.
Q7. Come rendere l'albero del processo di visualizzazione pstree specifico per un utente?
Se vuoi che pstree mostri tutti gli alberi dei processi radicati nei processi di proprietà di un utente specifico, tutto ciò che devi fare è passare il nome di quell'utente come input per il comando.
Ad esempio,
pstree himanshu
Quindi, in questo caso, sul mio sistema è stato prodotto il seguente output:
Q8. Come limitare Pstree a un processo specifico?
Se vuoi che pstree mostri solo le informazioni genitore e figlio per un processo specifico, usa l'opzione -s.
pstree -s [PID]
Ad esempio, volevo limitare l'output di Pstree solo al processo Firefox sul mio sistema, quindi ho eseguito il seguente comando:
pstree -s 3124
Ed ecco l'output visualizzato dallo strumento:
Conclusione
A seconda del tipo di lavoro svolto, il comando pstree può essere di grande aiuto. Qui, in questo tutorial, abbiamo discusso alcune opzioni chiave della riga di comando offerte da questo strumento. Per maggiori informazioni, vai alla sua pagina man.