Como Encontrar o Processo Pai PPID no Linux

Cada vez que um programa é executado, o kernel cria um processo associado ao programa. Simplificando, 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 vários processos filhos, cada um com um PID único (Identificação do Processo), mas compartilhando o mesmo PPID (Identificação do 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 um 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 é atribuído um identificador de processo pai ID (PPID) que mostra qual processo o gerou. Assim, 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 é o 6. O processo filho recebe um PID único, mas o PPID é o mesmo que o 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 pai em execução, juntamente com seus processos filho correspondentes e respectivos PIDs.

$ pstree -p
Show Linux Running Processes in Tree Hierarchy

Na saída, podemos ver os IDs de processos pai juntamente com os IDs de processos filho.

Para fins de demonstração, vamos verificar o PPID para 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 de Firefox é 3457 e o resto são PIDs de processos filho.

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 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 alcançar o mesmo objetivo.

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