Ricerca nel sito web

Linux pstree Command Tutorial per principianti (8 esempi)


Su questa pagina

  1. Comando Linux pstree
  2. D1. Come usare il comando pstree?
  3. Q2. Come fare in modo che pstree includa anche gli argomenti della riga di comando nell'output?
  4. Q3. Come forzare pstree ad espandere sottoalberi identici nell'output?
  5. Q4. Come fare in modo che pstree evidenzi un processo specifico?
  6. D5. In che modo pstree mostra gli ID del gruppo di processi nell'output?
  7. D6. Come creare processi di ordinamento pstree basati su PID?
  8. D7. Come rendere l'albero del processo di visualizzazione di pstree specifico per un utente?
  9. D8. Come limitare Pstree a un processo specifico?
  10. Conclusione

Poiché ogni processo (tranne il primissimo) 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'utility a riga di comando - soprannominata pstree - che visualizza un albero di processi.

In questo tutorial, discuteremo le basi del comando pstree utilizzando alcuni esempi di facile comprensione. Ma prima di farlo, vale la pena ricordare che tutti gli esempi qui sono stati testati su una macchina Ubuntu 22.04 LTS.

Comando Linux pstree

Come già accennato all'inizio, il comando pstree visualizza un albero di processi. Di seguito la sua sintassi:

pstree [options]

Ed ecco cosa dice la pagina man degli strumenti a riguardo:

       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 Q&A che dovrebbero darti una buona idea di 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 che questo è il modo in cui pstree produce informazioni relative al processo in output.

D2. Come fare in modo che pstree includa anche gli argomenti della riga di comando nell'output?

Questo può essere fatto usando l'opzione della riga di comando -a.

pstree -a

Quindi puoi vedere che il comando pstree ora mostra anche le opzioni della riga di comando per alcuni processi.

D3. Come forzare pstree ad espandere sottoalberi identici nell'output?

Per impostazione predefinita, il comando pstree unisce i rami identici inserendoli tra parentesi quadre e anteponendoli al conteggio delle ripetizioni. Qualcosa come questo:

Tuttavia, se lo desideri, puoi forzare lo strumento ad espandere alberi identici, cosa che puoi fare usando l'opzione della riga di comando -c.

pstree -c

D4. 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 vuoi evidenziare. Ad esempio, ho evidenziato il processo firefox sul mio sistema utilizzando 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 del gruppo di processi nell'output?

Per questo, usa l'opzione della riga di comando -g.

pstree -g

Quindi puoi vedere che gli ID del gruppo di processi sono mostrati come numeri decimali tra parentesi dopo ogni nome di processo.

D6. 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 anche avere processi di ordinamento pstree in base ai PID, cosa che puoi fare usando l'opzione -n della riga di comando.

pstree -n

Si noti che questo tipo di ordinamento è noto anche come ordinamento numerico.

Q7. Come rendere l'albero del processo di visualizzazione di pstree specifico per un utente?

Se vuoi che pstree visualizzi 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 al comando.

Per esempio,

pstree himanshu

Quindi, in questo caso, sul mio sistema è stato prodotto il seguente output:

D8. Come limitare Pstree a un processo specifico?

Se vuoi che pstree mostri solo le informazioni padre 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 che fai, 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.