Réponses:
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.
=signe n'est pas nécessaire, du moins sous OS X 10.8.2.
                    C'est l'une de ces choses que j'apprends, oublie, réapprends, répète. Mais c'est utile. Le drapeau 's' de la commande pstree montre un arbre avec une feuille en N:
pstree -sA $(pgrep badblocks)
systemd---sudo---mkfs.ext4---badblocks
Le pid parent est dans la variable shell PPID, donc
echo $PPID
$PPIDn’a fait que résoudre le problème que Google avait suggéré à cette page de répondre.
                    Pour imprimer les identifiants parents ( PPID) de tous les processus, utilisez cette commande:
ps j
Pour le processus simple, il suffit de passer le PID, comme: ps j 1234.
Pour extraire uniquement la valeur, filtrez la sortie awkcomme suit:
ps j | awk 'NR>1 {print $3}' # BSD ps
ps j | awk 'NR>1 {print $1}' # GNU ps
Pour lister les PID de tous les parents, utilisez pstree(installez-le si vous ne l'avez pas):
$ pstree -sg 1234
systemd(1)───sshd(1036)───bash(2383)───pstree(3007)
Pour obtenir le PID parent du processus en cours, utilisez echo $$.
pstreeest le plus beau que j'ai vu ici.
                    ps jest génial car il est disponible sur de nombreuses distributions et est facilement composable
                    Lisez / proc / $ PID / status. Peut être facilement scripté:
#! / bin / sh
P = 1 $
si [-z "$ P"]; ensuite
    lire P
Fi
cat / proc / "$ P" / status | grep PPid: | grep -o "[0-9] *"
              grep '^PPid:' /proc/$1/status | grep -o '[0-9]*'c'est tout ce dont vous avez besoin. (Il est très rare que les outils Unix fassent la if [ -z ]; then readchose.)
                    echo $$ | ppid | ppid | ppid
                    < /some/file grep | grep | ....
                    grep /some/file
                    $ 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écuter topavec toutes les options que vous voulez, comme -u username and -p PID.
Et pendant que vous topappuyez sur f, vous obtenez une liste des options que vous souhaitez afficher en topsortie. 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 bpuis appuyer sur Enter, le PPID s'affichera dans la sortie supérieure.
htopvous pouvez configurer la PPIDcolonne.
                    
grep PPid status |cut -f2comme danstime(for((i=0;i<1000;i++));do grep PPid status |cut -f2 >/dev/null;done); me demande s'il y a quelque chose d'encore plus rapide?