Linux에서 부모 프로세스 PPID 찾는 방법

매번 프로그램이 실행될 때, 커널은 해당 프로그램과 관련된 프로세스를 생성합니다. 간단히 말해, 프로세스는 리눅스에서 프로그램의 실행 중인 인스턴스입니다.

커널에 의해 생성된 프로세스는 ‘부모 프로세스’라고 합니다. 부모 프로세스에서 파생되거나 생성된 프로세스는 ‘자식 프로세스’로 알려져 있습니다. 부모 프로세스는 고유한 PID(프로세스 ID)를 갖지만 동일한 PPID를 공유하는 여러 자식 프로세스로 구성될 수 있습니다.

이 가이드에서는 리눅스 시스템에서 부모 프로세스 ID(PPID) 또는 프로세스를 찾을 수 있는 다양한 방법을 살펴보겠습니다.

PID와 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.

뿐만 아니라 PID, 각 프로세스는 자식을 만든 프로세스를 나타내는 부모 프로세스 ID(PPID)가 할당됩니다. 따라서 PPID는 프로세스의 부모의 PID입니다.

이를 배경으로 두고 프로세스 5PID5050인 것으로 가정하여 프로세스 6을 시작합니다. 프로세스 6은 고유한 PID6670와 함께 PPID5050으로 받습니다.

여기서 부모 프로세스는 프로세스 5이고 자식 프로세스는 6입니다. 자식 프로세스는 고유한 PID를 할당받지만 PPID는 부모 프로세스(프로세스 5)의 PID와 동일합니다.

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

리눅스에서 부모 프로세스 ID(PPID) 찾기

실행 중인 프로세스의 PPID를 찾는 두 가지 주요 접근 방식이 있습니다. 리눅스 시스템의:

Linux 프로세스 PPID를 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.

다음과 같은 -p 옵션으로 pstree는 실행 중인 모든 부모 프로세스와 해당 자식 프로세스 및 각각의 PID를 표시합니다.

$ pstree -p
Show Linux Running Processes in Tree Hierarchy

출력에서 우리는 자식 프로세스 ID와 함께 부모 프로세스 ID를 볼 수 있습니다.

데모를 위해 다음 명령을 사용하여 PPID를 확인하고 Mozilla Firefox와 전체 프로세스 계층 구조를 확인할 것입니다.

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

출력에서 PPIDFirefox3457이고 나머지는 PIDs입니다.

Firefox의 PPID만 표시하고 나머지 출력을 건너뛰려면 head 명령을 사용하여 -1을 입력하여 첫 번째 줄을 표시합니다.

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

ps 명령으로 Linux 프로세스 PPID 찾기

다른 옵션으로 프로세스의 PPID를 찾는 방법은 ps 명령어입니다. 이는 널리 사용되는 명령어로 리눅스 시스템에서 현재 실행 중인 프로세스를 표시합니다.

-ef 옵션과 함께 사용하면 ps 명령어는 실행 중인 모든 프로세스와 함께 UID, PID, PPID 등과 같은 세부 정보를 나열합니다.

$ ps -ef
List Running Linux Processes with PID

예를 들어 파이어폭스와 같은 특정 프로세스의 PPID를 표시하려면 -e 옵션을 사용하고 출력을 grep 명령어로 파이핑하여 다음과 같이 전달하세요.

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

다시 말하지만, 출력에서 파이어폭스PPID3457임을 알 수 있습니다.

이 가이드에서는 리눅스 시스템에서 실행 중인 프로세스의 PPIDs를 찾는 방법을 보여드렸습니다. pstree 명령어나 ps 명령어 중 어느 것을 사용해도 동일한 목표를 달성할 수 있습니다.

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