리눅스 명령어 pstree 사용법 및 5가지 옵션

리눅스 명령어 pstree는 부모-자식 관계를 가지고 실행되는 프로세스를 직관적으로 보여줍니다. pstree는 명령어 이름 그대로 프로세스 트리(Process Tree)를 보여주는 명령어로, 현재 실행 중인 프로세스들의 구조를 트리 형식으로 시각화해 줍니다. 이번 포스팅에서는 pstree 명령어의 사용법과 주요 옵션들을 소개하고, 활용 방법에 대해 알아보겠습니다.

pstree 명령어란?

pstree는 현재 시스템에서 실행 중인 모든 프로세스를 트리 형태로 보여주는 명령어입니다. 일반적인 ps 명령어와 달리 프로세스들이 어떤 부모-자식 관계를 가지는지 한눈에 파악할 수 있도록 해 줍니다.

프로세스 트리란?

리눅스에서 모든 프로세스는 부모 프로세스(Parent Process)와 자식 프로세스(Child Process) 관계를 가집니다. 예를 들어, 시스템이 부팅될 때 최초로 실행되는 프로세스는 init 또는 systemd라는 부모 프로세스가 있으며, 이 부모 프로세스가 여러 자식 프로세스를 실행시키게 됩니다. 이런 관계를 트리 형태로 나타낸 것이 바로 프로세스 트리입니다.

pstree 명령어 기본 사용법

pstree 명령어를 터미널에 입력하면 현재 실행 중인 프로세스 트리가 출력됩니다. 가장 간단한 사용법은 다음과 같습니다.

pstree
ShellScript

위 명령어를 입력하면 아래 그림과 같이 현재 시스템에서 실행 중인 프로세스가 트리 형태로 출력됩니다. 여기서 각 프로세스는 부모 프로세스 밑에 자식 프로세스로 나열됩니다.

그림 1. 리눅스 명령어 pstree 기본 실행 결과
그림 1. 리눅스 명령어 pstree 기본 실행 결과

위와 같이, systemd가 부모 프로세스이고, 그 아래에 여러 자식 프로세스들이 트리 형태로 나열된 것을 볼 수 있습니다.

특정 사용자 프로세스만 보기

특정 사용자의 프로세스만 보고 싶다면 [사용자명] 옵션을 사용할 수 있습니다. 이 옵션은 대규모 시스템에서 특정 사용자의 프로세스만 추적할 때 유용합니다.

pstree username
ShellScript

이 명령어는 아래 그림과 같이 해당 사용자가 실행 중인 프로세스들만 트리로 보여줍니다.

그림 2. 리눅스 명령어 pstree: 사용자 ito의 프로세스만 확인
그림 2. 리눅스 명령어 pstree: 사용자 ito의 프로세스만 확인

특정 PID 프로세스만 보기

특정 PID에 대한 프로세스만 열람하고 싶다면, 다음과 같이 pstree의 파라미터로 PID 값을 전달해 주면 됩니다.

pstree PID
ShellScript

이 경우 -p 옵션을 함께 사용하면 구조와 PID를 함께 빠르게 확인할 수 있습니다.

그림 3. 리눅스 명령어 pstree: PID 838의 프로세스만 확인
그림 3. 리눅스 명령어 pstree: PID 838의 프로세스만 확인

주요 옵션

pstree는 다양한 옵션을 제공하여 프로세스 트리를 더 세부적으로 출력하거나 보기 쉽게 만들 수 있습니다. 자주 사용되는 옵션 몇 가지를 살펴보겠습니다.

사용자별 프로세스 보기 (-u)

pstree -u 옵션을 사용하면 각 프로세스가 어떤 사용자가 실행했는지 함께 보여줍니다.

pstree -u
ShellScript

이 명령어는 사용자 이름을 프로세스 옆에 표시하여, 시스템에서 어떤 사용자가 어떤 프로세스를 실행 중인지 확인할 수 있게 해 줍니다.

그림 4. 리눅스 명령어 pstree: -u 옵션으로 프로세스 실행중인 사용자명 표시
그림 4. 리눅스 명령어 pstree: -u 옵션으로 프로세스 실행중인 사용자명 표시

PID 표시 (-p)

프로세스 ID(PID)를 확인하고 싶다면 -p 옵션을 사용하면 됩니다. PID는 각 프로세스를 고유하게 식별하는 번호입니다.

pstree -p
ShellScript

아래의 그림과 같이 해당 프로세스의 PID가 괄호 안에 표시된 것을 알 수 있습니다.

그림 5. 리눅스 명령어 pstree: -p 옵션으로 PID 표시
그림 5. 리눅스 명령어 pstree: -p 옵션으로 PID 표시

하이라이트 모드 (-H)

pstree의 기본 출력은 강조되어 표시되는 것이 없기 때문에 원하는 결과를 빨리 찾기 어려울 수 있습니다. 그럴 때에는 Highlight 옵션을 사용해서 특정 PID를 강조해서 표시할 수 있습니다.

pstree -H PID
ShellScript

아래 그림은 PID 838이 강조된 것을 보여줍니다.

그림 6. 리눅스 명령어 pstree: -H 옵션으로 특정 PID 강조 표시
그림 6. 리눅스 명령어 pstree: -H 옵션으로 특정 PID 강조 표시

ASCII 모드(-A)와 Unicode 모드(-U)

기본적으로 pstree는 유니코드 모드로 출력합니다. 유니코드 모드를 직접 지정할 수도 있으며, 만약 트리 구조를 ASCII 문자만으로 보고 싶을 때는 -A 옵션을 사용합니다.

pstree -U  # unicode mode
pstree -A  # ASCII mode
ShellScript

다음은 -A 옵션을 이용하여 ASCII 모드로 트리 구조를 표현한 것입니다.

그림 7. 리눅스 명령어 pstree: -A 옵션으로 ASCII 모드로 트리 구조 출력
그림 7. 리눅스 명령어 pstree: -A 옵션으로 ASCII 모드로 트리 구조 출력

유용한 활용 예시

시스템 모니터링

pstree 명령어는 시스템 모니터링과 문제 해결에 매우 유용합니다. 예를 들어, 특정 프로세스가 예상치 못하게 많은 자식 프로세스를 생성하고 있는 경우 pstree를 통해 이를 쉽게 확인할 수 있습니다.

데몬 관리

리눅스 서버 환경에서 여러 데몬이 실행 중일 때, 각 데몬의 자식 프로세스들이 어떻게 실행되고 있는지 트리 구조로 확인함으로써 문제 발생 시 빠르게 원인을 추적할 수 있습니다.

주의사항

  • 프로세스가 많을 경우 트리가 매우 복잡해질 수 있습니다. 이럴 때는 PID나 특정 사용자의 프로세스만 필터링하는 옵션을 사용하여 출력 내용을 간소화하는 것이 좋습니다.
  • 리눅스 배포판마다 pstree 명령어가 설치되지 않은 경우도 있으니, 없는 경우 psmisc 패키지를 설치해야 합니다.

정리

pstree 명령어는 리눅스 시스템에서 실행 중인 프로세스를 트리 형태로 시각화해 줌으로써, 시스템 모니터링과 문제 해결을 보다 직관적으로 할 수 있게 도와줍니다. 특히 부모-자식 프로세스 관계를 명확히 볼 수 있어, 시스템 리소스 관리와 프로세스 관리에 유용합니다. 기본적인 사용법 외에도 다양한 옵션을 통해 출력을 커스터마이징할 수 있으니, 상황에 맞게 적절한 옵션을 활용하는 것이 중요합니다.

이 명령어를 활용하여 복잡한 시스템 환경에서도 효율적으로 프로세스를 관리해 보세요.

참고자료

관련 포스트

Leave a Comment