GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo obtener el PID principal de un proceso determinado en GNU/Linux desde la línea de comandos?

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

Linux
  1. Linux:¿cómo averiguar la familia de arquitectura Intel desde la línea de comandos?

  2. Cómo obtener un proceso secundario del proceso principal

  3. ¿Cómo puedo copiar una carpeta desde la línea de comandos de Linux?

  4. ¿Cómo obtener la URL del archivo de Dropbox desde la línea de comando?

  5. ¿Cómo obtengo mi dirección IP desde la línea de comandos?

Cómo verificar los detalles del clima desde la línea de comandos en Linux

Cómo tomar capturas de pantalla desde la línea de comandos usando "Scrot" en Linux

Cómo averiguar la dirección IP pública desde la línea de comandos en Linux

Cómo ajustar el brillo del monitor desde la línea de comandos en Linux

Cómo comprobar las estadísticas de red de Linux desde la línea de comandos

Cómo MATAR un proceso en Linux