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$PPIDsarà 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 è bashesftp-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