Cómo encontrar el proceso principal PPID en Linux

Cada vez que se ejecuta un programa, el núcleo crea un proceso asociado con el programa. En pocas palabras, un proceso es una instancia en ejecución de un programa en Linux.

El proceso creado por el núcleo se denomina ‘Proceso Padre’. Los procesos derivados o generados a partir del proceso padre se conocen como ‘Procesos Hijos’. Un proceso padre puede constar de varios procesos hijos, cada uno con un PID único pero compartiendo el mismo PPID.

En esta guía, exploramos diversas formas en que puedes utilizar para descubrir los Identificadores de Proceso Padre (PPIDs) o procesos en un sistema Linux.

¿Cuál es la Diferencia Entre un PID y un PPID?

A program that is loaded into memory and running is known as a process. Once started, the process is given a unique number known as the process ID (PID) that uniquely identifies it in the system. The process can be referred to at any time using its PID. For example, to kill a process, you will have to know its PID first.

Además del PID, cada proceso se le asigna un identificador de proceso padre ID (PPID) que muestra qué proceso lo generó. Por lo tanto, el PPID es el PID del proceso padre.

Para poner esto en contexto, supongamos que el proceso 5 con un PID de 5050 inicia el proceso 6. El proceso 6 recibirá un PID único como 6670, pero aún así se le dará el PPID de 5050.

El proceso padre aquí es el proceso 5 y el proceso hijo es 6. El proceso hijo se le asigna un PID único pero el PPID es el mismo que el PID del proceso padre (proceso 5)

A single parent can start multiple several child processes, each with a unique PID but all sharing the same PPID.

Encontrar el ID de Proceso Padre (PPID) en Linux

Existen dos enfoques principales para encontrar el PPID de un proceso en ejecución en un sistema Linux:

  • Usando el comando pstree.
  • Usando el comando ps.

Encontrar el PPID del proceso en Linux utilizando el comando pstree

A pstree command is a command-line tool that displays running processes as a tree, which makes for a convenient way of displaying processes in a hierarchy. It shows the parent-child relationship in a tree hierarchy.

Con la opción -p, el pstree muestra todos los procesos padre en ejecución junto con sus procesos hijos correspondientes y sus PID respectivos.

$ pstree -p
Show Linux Running Processes in Tree Hierarchy

A partir de la salida, podemos ver los identificadores de proceso padre junto con los identificadores de proceso hijo.

Para demostrarlo, vamos a verificar el PPID para Mozilla Firefox junto con toda la jerarquía de procesos utilizando el siguiente comando:

$ pstree -p | grep 'firefox'
Find the PPID of the Linux Process

A partir de la salida, puedes ver que el PPID de Firefox es 3457 y el resto son PIDs de procesos hijos.

Para mostrar solo el PPID de Firefox y omitir el resto de la salida, canaliza la salida al comando head con -1 para mostrar la primera línea.

$ pstree -p | grep 'firefox' | head -1
Print PPID of Linux Process

Encontrar el PPID del proceso en Linux utilizando el comando ps

La otra opción para encontrar el PPID de un proceso es el comando ps, que es un comando ampliamente utilizado que muestra los procesos en ejecución actuales en un sistema Linux.

Cuando se utiliza con la opción -ef, el comando ps enumera todos los procesos en ejecución junto con sus detalles, como el UID, PID, PPID, etc.

$ ps -ef
List Running Linux Processes with PID

Para reducirlo y mostrar el PPID de un proceso específico, por ejemplo, Firefox, pase la opción -e y canalice la salida al comando grep como se muestra.

$ ps -e | grep 'firefox'
Find Linux Process PID

Una vez más, en la salida, puedes ver que el PPID de Firefox es 3457.

En esta guía, hemos demostrado cómo puedes encontrar los PPIDs de los procesos que se ejecutan en un sistema Linux. Puedes usar el comando pstree o el comando ps para lograr el mismo objetivo.

Source:
https://www.tecmint.com/find-parent-process-ppid/