Como Encontrar o Processo Pai PPID no Linux

Cada vez que um programa é executado, o kernel cria um processo associado ao programa. Em termos simples, um processo é uma instância em execução de um programa no Linux.

O processo criado pelo kernel é referido como o ‘Processo Pai’. Processos derivados ou gerados a partir do processo pai são conhecidos como ‘Processos Filhos’. Um processo pai pode consistir em múltiplos processos filhos, cada um tendo um PID único (Identificador de Processo), mas compartilhando o mesmo PPID (Identificador de Processo Pai).

Neste guia, exploramos várias maneiras que você pode usar para descobrir os IDs de Processo Pai (PPIDs) ou processos em um sistema Linux.

Qual é a Diferença Entre um PID e 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.

Além do PID, cada processo recebe um ID de processo pai ID (PPID) que mostra qual processo o gerou. Portanto, o PPID é o PID do processo pai.

Para colocar isso em contexto, vamos supor que o processo 5 com um PID de 5050 inicia o processo 6. O Processo 6 receberá um PID único como 6670, mas ainda receberá o PPID de 5050.

O processo pai aqui é o processo 5 e o processo filho é 6. O processo filho recebe um PID único, mas o PPID é o mesmo do PID do processo pai (processo 5)

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

Encontre o ID do Processo Pai (PPID) no Linux

Existem duas abordagens principais para encontrar o PPID de um processo em execução em um sistema Linux:

  • Usando o comando pstree.
  • Usando o comando ps.

Encontrar o PPID do Processo Linux Usando o 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.

Com a opção -p, o pstree exibe todos os processos parentais em execução, juntamente com seus processos filhos correspondentes e respectivos PIDs.

$ pstree -p
Show Linux Running Processes in Tree Hierarchy

Na saída, podemos ver os IDs de processos parentais, juntamente com os IDs de processos filhos.

Para fins de demonstração, vamos verificar o PPID para o Mozilla Firefox junto com toda a hierarquia de processos usando o seguinte comando:

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

Na saída, você pode ver que o PPID do Firefox é 3457 e o resto são PIDs de processos filhos.

Para exibir apenas o PPID do Firefox e ignorar o restante da saída, canalize a saída para o comando head com -1 para exibir a primeira linha.

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

Encontrar o PPID do Processo Linux Usando o Comando ps

A outra opção para encontrar o PPID de um processo é o comando ps, que é um comando amplamente utilizado que exibe os processos em execução atualmente em um sistema Linux.

Ao ser usado com a opção -ef, o comando ps lista todos os processos em execução, juntamente com seus detalhes, como o UID, PID, PPID, etc.

$ ps -ef
List Running Linux Processes with PID

Para limitar e exibir o PPID de um processo específico, por exemplo, Firefox, passe a opção -e e canalize a saída para o comando grep como mostrado.

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

Mais uma vez, a partir da saída, você pode ver que o PPID de Firefox é 3457.

Neste guia, demonstramos como você pode encontrar os PPIDs de processos em execução em um sistema Linux. Você pode usar o comando pstree ou o comando ps para chegar ao mesmo objetivo.

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