Befehlszeile:
ps -o ppid= -p 1111
Funktion:
ppid () { ps -p ${1:-$$} -o ppid=; }
Alias (bevorzugt eine Funktion):
alias ppid='ps -o ppid= -p'
Skript:
#!/bin/sh
pid=$1
if [ -z $pid ]
then
read -p "PID: " pid
fi
ps -p ${pid:-$$} -o ppid=
Wenn der Funktion oder dem Skript keine PID übergeben wird, zeigen sie standardmäßig die PPID des aktuellen Prozesses an.
Um den Alias zu verwenden, muss eine PID angegeben werden.
Eltern-IDs drucken (PPID
) aller Prozesse verwenden Sie diesen Befehl:
ps j
Übergeben Sie für den einzelnen Prozess einfach die PID, wie:ps j 1234
.
Um nur den Wert zu extrahieren, filtern Sie die Ausgabe nach awk
, wie:
ps j | awk 'NR>1 {print $3}' # BSD ps
ps j | awk 'NR>1 {print $1}' # GNU ps
Um die PIDs aller Eltern aufzulisten, verwenden Sie pstree
(Installieren Sie es, wenn Sie es nicht haben):
$ pstree -sg 1234
systemd(1)───sshd(1036)───bash(2383)───pstree(3007)
Um die übergeordnete PID des aktuellen Prozesses zu erhalten, verwenden Sie echo $$
.
Dies ist eines dieser Dinge, die ich lerne, vergesse, neu lerne, wiederhole. Aber es ist nützlich. Das 's'-Flag des pstree-Befehls zeigt einen Baum mit einem Blatt bei N:
pstree -sA $(pgrep badblocks)
systemd---sudo---mkfs.ext4---badblocks