Línea de comando:
ps -o ppid= -p 1111
Función:
ppid () { ps -p ${1:-$$} -o ppid=; }
Alias (una función es preferible):
alias ppid='ps -o ppid= -p'
Guión:
#!/bin/sh
pid=$1
if [ -z $pid ]
then
read -p "PID: " pid
fi
ps -p ${pid:-$$} -o ppid=
Si no se proporciona un PID a la función o al script, mostrarán de forma predeterminada el PPID del proceso actual.
Para usar el alias, se debe proporcionar un PID.
Para imprimir identificaciones de padres (PPID
) de todos los procesos, utilice este comando:
ps j
Para el proceso único, simplemente pase el PID, como:ps j 1234
.
Para extraer solo el valor, filtre la salida por awk
, como:
ps j | awk 'NR>1 {print $3}' # BSD ps
ps j | awk 'NR>1 {print $1}' # GNU ps
Para enumerar los PID de todos los padres, use pstree
(instalarlo si no lo tiene):
$ pstree -sg 1234
systemd(1)───sshd(1036)───bash(2383)───pstree(3007)
Para obtener el PID principal del proceso actual, use echo $$
.
Esta es una de esas cosas que aprendo, olvido, vuelvo a aprender, repito. Pero es útil. La bandera 's' del comando pstree muestra un árbol con una hoja en N:
pstree -sA $(pgrep badblocks)
systemd---sudo---mkfs.ext4---badblocks