리눅스 명령어 pstree는 부모-자식 관계를 가지고 실행되는 프로세스를 직관적으로 보여줍니다. pstree
는 명령어 이름 그대로 프로세스 트리(Process Tree)를 보여주는 명령어로, 현재 실행 중인 프로세스들의 구조를 트리 형식으로 시각화해 줍니다. 이번 포스팅에서는 pstree
명령어의 사용법과 주요 옵션들을 소개하고, 활용 방법에 대해 알아보겠습니다.
목차
pstree
명령어란?
pstree
는 현재 시스템에서 실행 중인 모든 프로세스를 트리 형태로 보여주는 명령어입니다. 일반적인 ps
명령어와 달리 프로세스들이 어떤 부모-자식 관계를 가지는지 한눈에 파악할 수 있도록 해 줍니다.
프로세스 트리란?
리눅스에서 모든 프로세스는 부모 프로세스(Parent Process)와 자식 프로세스(Child Process) 관계를 가집니다. 예를 들어, 시스템이 부팅될 때 최초로 실행되는 프로세스는 init
또는 systemd
라는 부모 프로세스가 있으며, 이 부모 프로세스가 여러 자식 프로세스를 실행시키게 됩니다. 이런 관계를 트리 형태로 나타낸 것이 바로 프로세스 트리입니다.
pstree
명령어 기본 사용법
pstree
명령어를 터미널에 입력하면 현재 실행 중인 프로세스 트리가 출력됩니다. 가장 간단한 사용법은 다음과 같습니다.
pstree
ShellScript위 명령어를 입력하면 아래 그림과 같이 현재 시스템에서 실행 중인 프로세스가 트리 형태로 출력됩니다. 여기서 각 프로세스는 부모 프로세스 밑에 자식 프로세스로 나열됩니다.
위와 같이, systemd
가 부모 프로세스이고, 그 아래에 여러 자식 프로세스들이 트리 형태로 나열된 것을 볼 수 있습니다.
특정 사용자 프로세스만 보기
특정 사용자의 프로세스만 보고 싶다면 [사용자명]
옵션을 사용할 수 있습니다. 이 옵션은 대규모 시스템에서 특정 사용자의 프로세스만 추적할 때 유용합니다.
pstree username
ShellScript이 명령어는 아래 그림과 같이 해당 사용자가 실행 중인 프로세스들만 트리로 보여줍니다.
특정 PID 프로세스만 보기
특정 PID에 대한 프로세스만 열람하고 싶다면, 다음과 같이 pstree의 파라미터로 PID 값을 전달해 주면 됩니다.
pstree PID
ShellScript이 경우 -p 옵션을 함께 사용하면 구조와 PID를 함께 빠르게 확인할 수 있습니다.
주요 옵션
pstree
는 다양한 옵션을 제공하여 프로세스 트리를 더 세부적으로 출력하거나 보기 쉽게 만들 수 있습니다. 자주 사용되는 옵션 몇 가지를 살펴보겠습니다.
사용자별 프로세스 보기 (-u
)
pstree -u
옵션을 사용하면 각 프로세스가 어떤 사용자가 실행했는지 함께 보여줍니다.
pstree -u
ShellScript이 명령어는 사용자 이름을 프로세스 옆에 표시하여, 시스템에서 어떤 사용자가 어떤 프로세스를 실행 중인지 확인할 수 있게 해 줍니다.
PID 표시 (-p
)
프로세스 ID(PID)를 확인하고 싶다면 -p
옵션을 사용하면 됩니다. PID는 각 프로세스를 고유하게 식별하는 번호입니다.
pstree -p
ShellScript아래의 그림과 같이 해당 프로세스의 PID가 괄호 안에 표시된 것을 알 수 있습니다.
하이라이트 모드 (-H
)
pstree의 기본 출력은 강조되어 표시되는 것이 없기 때문에 원하는 결과를 빨리 찾기 어려울 수 있습니다. 그럴 때에는 Highlight 옵션을 사용해서 특정 PID를 강조해서 표시할 수 있습니다.
pstree -H PID
ShellScript아래 그림은 PID 838이 강조된 것을 보여줍니다.
ASCII 모드(-A)와 Unicode 모드(-U)
기본적으로 pstree는 유니코드 모드로 출력합니다. 유니코드 모드를 직접 지정할 수도 있으며, 만약 트리 구조를 ASCII 문자만으로 보고 싶을 때는 -A
옵션을 사용합니다.
pstree -U # unicode mode
pstree -A # ASCII mode
ShellScript다음은 -A 옵션을 이용하여 ASCII 모드로 트리 구조를 표현한 것입니다.
유용한 활용 예시
시스템 모니터링
pstree
명령어는 시스템 모니터링과 문제 해결에 매우 유용합니다. 예를 들어, 특정 프로세스가 예상치 못하게 많은 자식 프로세스를 생성하고 있는 경우 pstree
를 통해 이를 쉽게 확인할 수 있습니다.
데몬 관리
리눅스 서버 환경에서 여러 데몬이 실행 중일 때, 각 데몬의 자식 프로세스들이 어떻게 실행되고 있는지 트리 구조로 확인함으로써 문제 발생 시 빠르게 원인을 추적할 수 있습니다.
주의사항
- 프로세스가 많을 경우 트리가 매우 복잡해질 수 있습니다. 이럴 때는 PID나 특정 사용자의 프로세스만 필터링하는 옵션을 사용하여 출력 내용을 간소화하는 것이 좋습니다.
- 리눅스 배포판마다
pstree
명령어가 설치되지 않은 경우도 있으니, 없는 경우psmisc
패키지를 설치해야 합니다.
정리
pstree
명령어는 리눅스 시스템에서 실행 중인 프로세스를 트리 형태로 시각화해 줌으로써, 시스템 모니터링과 문제 해결을 보다 직관적으로 할 수 있게 도와줍니다. 특히 부모-자식 프로세스 관계를 명확히 볼 수 있어, 시스템 리소스 관리와 프로세스 관리에 유용합니다. 기본적인 사용법 외에도 다양한 옵션을 통해 출력을 커스터마이징할 수 있으니, 상황에 맞게 적절한 옵션을 활용하는 것이 중요합니다.
이 명령어를 활용하여 복잡한 시스템 환경에서도 효율적으로 프로세스를 관리해 보세요.