Résolu avant de poser la question suivante: cat /proc/1111/status | grep PPid
Ligne de commande:
ps -o ppid= -p 1111
Une fonction:
ppid () { ps -p ${1:-$$} -o ppid=; }
Alias (une fonction est préférable ):
alias ppid='ps -o ppid= -p'
Scénario:
#!/bin/sh
pid=$1
if [ -z $pid ]
then
read -p "PID: " pid
fi
ps -p ${pid:-$$} -o ppid=
Si aucun PID n'est fourni à la fonction ou au script, le PPID du processus en cours est affiché par défaut.
Pour utiliser l'alias, un PID doit être fourni.
Le pid parent est dans la variable shell PPID, donc
echo $PPID
C'est l'une de ces choses que j'apprends, oublie, réapprends, répète. Mais c'est utile. L’indicateur "s" de la commande pstree montre un arbre avec une feuille en N:
pstree -sA $(pgrep badblocks)
systemd---Sudo---mkfs.ext4---badblocks
Cette commande:
ps j
affichera les identifiants parents (PPID
) de tous les processus.
Pour le processus unique, il suffit de passer le PID, tel que: ps j 1234
.
Pour extraire uniquement la valeur, filtrez la sortie par awk
, comme suit:
ps j 1234 | awk 'NR>1 {print $3}' # BSD ps
ps j 1234 | awk 'NR>1 {print $1}' # GNU ps
Pour lister les PID de tous les parents, utilisez alors pstree
, comme:
$ pstree -sg 1234
systemd(1)───sshd(1036)───bash(2383)───pstree(3007)
Pour obtenir le PID parent du processus en cours, utilisez ensuite echo $$
.
Lisez/proc/$ PID/status. Peut être facilement scripté:
#!/bin/sh P = 1 $ si [-z "$ P"]; alors lit P fi cat/proc/"$ P"/status | grep PPid: | grep -o "[0-9] *"
Sous Linux:
ps hoppid $thatprocess
$ ps -p $(ps -p $(echo $$) -o ppid=) -o comm=
tmux
Exemple un peu plus complexe qui vérifie la commande d'un parent qui a démarré le processus en cours Modifiez comm = en cmd = pour afficher la commande complète.
Voici une solution rapide qui devrait également fonctionner:
ps $$
Exécutez top
avec les options de votre choix, telles que -u username and -p PID
.
Et pendant que top
fonctionne, appuyez sur f, il affiche une liste des options que vous souhaitez afficher dans la sortie top
. Les paramètres affichés sont affichés en lettres majuscules et les paramètres affichés ou non en petites lettres.
Donc, en entrant la lettre avant le paramètre, vous pouvez l'activer ou le désactiver. Pour l'ID de processus parent, vous devez entrer b puis appuyez sur Enter, il affichera le PPID dans la sortie supérieure.