SW/리눅스

Linux : Pstree 명령어, 사용 방법, 예제

얇은생각 2022. 4. 1. 07:30
반응형

Linux 시스템에서 작업할 때 현재 실행 중인 프로세스를 확인해야 하는 경우가 있을 수 있습니다. 실행 중인 프로세스에 대한 정보를 찾는 데 사용할 수 있는 명령어가 여러 개 있으며 ps와 top이 가장 일반적으로 사용됩니다.

pstree 명령에 대해 설명합니다. ps와 유사하지만 실행 중인 프로세스를 나열하는 대신 트리에 표시합니다. 트리 같은 형식을 사용하면 프로세스 계층을 보다 편리하게 표시할 수 있으며 출력을 시각적으로 더 매력적으로 만들 수 있습니다.

 

 

Linux : Pstree 명령어, 사용 방법, 예제

 

 

pstree 명령을 사용하는 방법

pstree 명령의 일반 구문은 다음과 같습니다.

ps [OPTIONS] [USER or PID]

 

 

옵션이나 인수 없이 호출되는 가장 간단한 형식에서 pstree는 실행 중인 모든 프로세스의 계층 트리 구조를 표시합니다.

pstree

# systemd─┬─VBoxService───7*[{VBoxService}]
#         ├─accounts-daemon───2*[{accounts-daemon}]
#         ├─2*[agetty]
#         ├─atd
#         ├─cron
#         ├─dbus-daemon
#         ├─irqbalance───{irqbalance}
#         ├─2*[iscsid]
#         ├─lvmetad
#         ├─lxcfs───2*[{lxcfs}]
#         ├─networkd-dispat───{networkd-dispat}
#         ├─nginx───2*[nginx]
# ...

 

 

트리의 상위/루트 항목은 모든 시스템 프로세스의 상위 프로세스입니다. 이 예에서는 부팅 시 시작하는 첫 번째 프로세스인 systemd입니다.

pstree는 동일한 분기를 대괄호 사이에 넣고 분기의 수를 나타내는 정수로 접두하여 병합합니다. 따라서 출력이 더 읽기 쉽고 시각적으로 매력적입니다.

다음은 대괄호의 사용 방법을 보여 주는 예입니다.

├─2*[agetty]

 

 

다음과 같습니다.

├─agetty        
├─agetty

 

 

동일한 분기의 병합을 사용하지 않으려면 -c 옵션을 사용합니다.

pstree -c

 

 

프로세스의 스레드는 상위 프로세스 아래에 표시되며 중괄호 안에 프로세스 이름을 사용하여 표시됩니다. 다음은 예입니다.

├─lxcfs───2*[{lxcfs}]

 

 

-t 옵션을 사용하여 전체 쓰레드 이름을 표시합니다. 스레드를 숨기고 프로세스만 표시하려면 -T 옵션을 사용합니다.

일반적으로 pstree는 화면에 맞지 않는 많은 출력 라인을 표시합니다. 출력을 한 번에 한 페이지씩 보려면 less 명령에 연결합니다.

pstree | less

 

 

사용자 이름이 인수로 지정된 경우 pstree는 해당 사용자가 소유한 프로세스만 표시합니다. 예를 들어, 다음 명령은 "리눅스화"라는 사용자가 시작한 프로세스만 표시합니다.

pstree linuxize

 

 

PID가 인수로 지정되면 pstree는 지정된 프로세스를 트리의 루트로 사용하는 트리를 표시합니다. 다음은 예입니다.

pstree 1943

# sshd───bash───pstree

 

 

지정된 프로세스의 상위 프로세스를 표시하려면 프로세스 PID 다음에 -s 옵션을 사용합니다.

pstree -s 1943

# systemd───sshd───sshd───bash───pstree

 

 

 

PID 및 PGID를 표시

일반적으로 pstree 명령을 실행할 때 사용자가 찾는 가장 중요한 정보는 프로세스 ID입니다. 예를 들어, PID를 알면 오작동 프로세스를 중단할 수 있습니다.

-p 옵션은 pstree에 PID를 표시하도록 지시합니다.

PID는 각 프로세스 또는 스레드가 끝나면 괄호 안에 표시됩니다.

pstree -p

# systemd(1)─┬─VBoxService(955)─┬─{VBoxService}(956)
#            │                  ├─{VBoxService}(957)
#            │                  ├─{VBoxService}(958)
#            │                  ├─{VBoxService}(959)
#            │                  ├─{VBoxService}(960)
#            │                  ├─{VBoxService}(961)
#            │                  └─{VBoxService}(962)
# ...

 

 

기본적으로 pstree는 상위 항목이 같은 프로세스를 이름별로 정렬합니다. -n 옵션은 pstree에 숫자 정렬을 사용하도록 지시합니다. 즉, PID별로 정렬합니다.

pstree -pn

 

 

프로세스 그룹 ID 또는 PGID는 프로세스 그룹의 첫 번째 멤버의 프로세스 ID입니다. PGID를 보려면 -g 옵션을 사용합니다.

각 프로세스 또는 스레드가 끝나면 PID가 괄호 안에 표시됩니다.

pstree -g

# systemd(1)─┬─VBoxService(954)─┬─{VBoxService}(954)
#            │                  ├─{VBoxService}(954)
#            │                  ├─{VBoxService}(954)
#            │                  ├─{VBoxService}(954)
#            │                  ├─{VBoxService}(954)
#            │                  ├─{VBoxService}(954)
#            │                  └─{VBoxService}(954)
# ...

 

 

PID 또는 PGID가 표시되면 병합이 암시적으로 비활성화됩니다.

 

 

 

명령줄 인수를 표시

명령줄 인수로 지정된 구성 옵션을 사용하여 일부 프로그램을 호출할 수 있습니다.

기본적으로 pstree에는 실행 중인 프로세스에 대한 명령줄 인수가 표시되지 않습니다. 프로세스가 어떻게 시작되었는지 보려면 -a 옵션과 함께 명령을 사용하십시오.

pstree -a

# ..
#   ├─agetty -o -p -- \\u --keep-baud 115200,38400,9600 ttyS0 vt220
#   ├─agetty -o -p -- \\u --noclear tty1 linux
# ...

 

 

 

강조

pstree를 사용하면 프로세스를 강조 표시하여 더 나은 시각적 표현을 할 수 있습니다.

-h 옵션은 pstree가 현재 프로세스와 모든 상위 프로세스를 강조 표시하도록 지시합니다.

pstree -h

 

 

특정 프로세스를 강조 표시하려면 -H 옵션 다음에 프로세스 ID를 사용하십시오.

pstree -H PID_NUMBER

 

 

강조 표시가 지원되지 않으면 명령이 오류와 함께 종료됩니다.

pstree 명령은 실행 중인 프로세스를 트리 구조의 형태로 표시합니다.

사용 가능한 모든 pstree 옵션에 대한 자세한 내용은 터미널에 man pstree를 입력합니다.

반응형