Panoramica
In questo breve tutorial, imparerai come trovare l’ID processo genitore in Linux dalla riga di comando.
Imparerai anche come trovare i figli di un determinato ID processo genitore usando il comandops
.
Tratteremo anche come produrre un albero di processo completo di un processo genitore usando il comandopstree
. Una cosa molto utile quando si desidera identificare tutti i figli di un determinato genitore, i loro ID e nomi, che potrebbe essere necessario quando si uccide un processo.,
Variabile d’ambiente ID processo padre
L’ID processo padre del contesto corrente viene esposto come variabile d’ambiente. Per vedere il valore si può eco fuori.
echo $PPID
Ad esempio, se si èSSH
‘d in un server Linux, il valore della variabile di ambiente$PPID
sarà l’ID di processo del processoSSH
.
La variabile di ambiente emette solo l’ID del processo., Per vedere qual è il processo genitore possiamo usare il comandops
con la variabile di ambiente$PPID
.
ps -e | grep $PPID
Trova l’ID processo padre di un processo in esecuzione
Per determinare il processo padre di un processo specifico, usiamo il comando ps
.
ps -o ppid= -p 9801
L’output contiene solo l’ID del processo genitore stesso. Utilizzando l’output del comandops
possiamo determinare il nome del processo.,
ps -e | grep 9801
2029 ? 00:00:14 apache2
Elenco dei processi figlio di un ID processo genitore
Con l’ID processo genitore possiamo cercare tutto il processo figlio usando del genitore usando il comando pgrep
.
pgrep -laP $PPID
Per un tipico genitore SSH l’output elencherà i seguenti processi
30797 -bash30798 /usr/lib/openssh/sftp-server
Visualizza albero dei processi
Un’altra utilità utile è il comandopstree
. Questo comando produrrà un albero di processi figli di un ID processo padre., Ad esempio, per visualizzare un albero di processi figlio dal processo padre corrente, eseguire il seguente comando.
pstree $PPID
sshd─┬─bash───pstree └─sftp-server
Dall’esempio sopra, possiamo vedere che il processosshd
è il nostro attuale ID processo genitore (PPID) e che ha due processi figli. Il processo figlio è bash
esftp-server
.
Possiamo anche vedere che il processobash
ha un proprio figlio, che è il comandopstree
che abbiamo appena eseguito.,
Il comando pstree
può anche emettere l’ID di processo di ciascun processo nell’albero. Per emettere gli ID di processo si utilizza il flag-p
. Ecco un esempio di un albero di processo per un server Web Apache.
pstree -p 2029