본문 바로가기
카테고리 없음

Linux ps command option 사용법과 예시

by lazyautoman 2023. 2. 19.

1. ps command

ps 명령은 "프로세스 상태"를 나타내며 Linux 또는 Unix 기반 시스템에서 현재 실행 중인 프로세스에 대한 정보를 표시하는 데 사용됩니다.

다음은 ps 명령의 출력 예입니다.

 

PID   TTY      TIME     CMD
3156  pts/0    00:00:00 bash
3241  pts/0    00:00:00 ps

 

이 출력의 각 열을 분석해 보겠습니다.

PID: 이것은 "프로세스 ID"를 나타내며 운영 체제에서 각 프로세스에 할당하는 고유한 식별자입니다.

TTY: 이 열에는 프로세스와 관련된 터미널이 표시됩니다. 이 예에서 두 프로세스는 동일한 터미널인 pts/0에서 실행됩니다.
TIME: 이 열에는 프로세스가 지금까지 사용한 CPU 시간이 표시됩니다. 이 경우 두 프로세스 모두 0초의 CPU 시간을 사용했습니다.
CMD: 이 열에는 프로세스를 시작한 명령 또는 실행 파일의 이름이 표시됩니다. 이 예에서 첫 번째 프로세스는 bash 셸이고 두 번째 프로세스는 ps 명령 자체입니다.

 

따라서 요약하면 ps 명령은 시스템에서 현재 실행 중인 프로세스의 개요를 얻는 데 유용한 도구입니다. 프로세스 ID, 터미널, CPU 사용량 및 명령 이름에 대한 정보를 제공할 수 있습니다.

 

2. ps command option

(1) a: 이 옵션은 터미널과 연결되지 않은 프로세스를 포함하여 시스템의 모든 프로세스에 대한 정보를 표시합니다.

  PID TTY          TIME CMD
    1 ?        00:00:01 systemd
    2 ?        00:00:00 kthreadd
    3 ?        00:00:00 rcu_gp
    4 ?        00:00:00 rcu_par_gp
    6 ?        00:00:00 kworker/0:0H-kb
    7 ?        00:00:00 mm_percpu_wq
    8 ?        00:00:00 ksoftirqd/0
    9 ?        00:00:04 rcu_sched
   10 ?        00:00:00 migration/0
   11 ?        00:00:00 idle_inject/0
...

 

이 예에서 ps 명령은 -a 옵션과 함께 사용됩니다. 이 옵션의 기능은 다음과 같습니다.
-a: 이 옵션은 세션 리더와 관련된 프로세스를 제외한 모든 프로세스에 대한 정보를 표시하도록 ps에 지시합니다.

 

이 명령의 출력에는 각 프로세스에 대한 여러 정보 열이 포함됩니다.

PID: 이 열은 프로세스의 프로세스 ID를 보여줍니다.
TTY: 이 열에는 프로세스와 관련된 제어 터미널이 표시됩니다.
TIME: 이 열은 프로세스가 사용하는 CPU 시간을 보여줍니다.
CMD: 이 열에는 프로세스를 시작한 명령이 표시됩니다.

 

-a 옵션을 사용하면 ps는 터미널과 연결되지 않은 프로세스를 포함하여 모든 프로세스에 대한 정보를 표시합니다. 이는 시스템에서 실행 중인 모든 프로세스를 나열하고 리소스를 많이 사용하는 프로세스를 식별하는 데 유용할 수 있습니다.

 

ps -a의 출력에는 사용자 작업과 관련이 없는 많은 시스템 수준 프로세스 및 데몬이 포함될 수 있습니다. 출력을 필터링하고 특정 사용자와 관련된 프로세스만 표시하려면 -u 옵션 다음에 사용자 이름을 사용할 수 있습니다. 예를 들어 ps -au myusername은 사용자 myusername과 연결된 모든 프로세스를 표시합니다.

 

(2) u: 이 옵션은 프로세스 소유자의 사용자 이름, CPU 및 메모리 사용량, 프로세스 시작 시간을 포함하여 프로세스에 대한 자세한 정보를 표시합니다.

 

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
john      1250  0.0  0.1  40052  6972 pts/0    Ss   12:21   0:00 bash
john      1263  0.0  0.1  46696  8220 pts/0    S+   12:21   0:00 top

 

이 예에서 ps 명령은 -u 옵션 및 사용자 이름 john과 함께 사용됩니다. 이 옵션의 기능은 다음과 같습니다.

 

-u: 이 옵션은 특정 사용자의 프로세스에 대한 정보를 표시하도록 ps에 지시합니다.
이 명령의 출력에는 각 프로세스에 대한 여러 정보 열이 포함됩니다.

 

USER: 이 열에는 프로세스를 시작한 사용자의 사용자 이름이 표시됩니다.
PID: 이 열은 프로세스의 프로세스 ID를 보여줍니다.
%CPU: 이 열은 프로세스에서 사용하는 CPU 시간의 백분율을 보여줍니다.
%MEM: 이 열은 프로세스에서 사용하는 메모리의 백분율을 보여줍니다.
VSZ: 이 열은 프로세스의 가상 메모리 크기를 보여줍니다.
RSS: 이 열은 프로세스에서 사용하는 상주 세트 크기(물리적 메모리)를 보여줍니다.

TTY: 이 열에는 프로세스와 관련된 제어 터미널이 표시됩니다.
STAT: 이 열은 프로세스 상태를 보여줍니다.
START: 이 열은 프로세스가 시작된 시간을 보여줍니다.
TIME: 이 열은 프로세스에서 사용한 총 CPU 시간을 보여줍니다.
COMMAND: 이 열에는 프로세스를 시작한 명령이 표시됩니다.

 

-u 옵션 뒤에 사용자 이름이 있으면 ps는 해당 사용자와 관련된 모든 프로세스에 대한 정보를 표시합니다. 이는 특정 사용자 프로세스의 리소스 사용량을 모니터링하는 데 유용할 수 있습니다.

 

ps -u의 출력에는 ps 명령을 실행하는 사용자의 권한에 따라 루트 또는 다른 사용자로 실행 중인 프로세스가 포함될 수 있습니다. 현재 사용자의 프로세스만 표시하려면 -U 옵션 다음에 사용자 이름을 사용할 수 있습니다. 예를 들어 ps -U myusername은 사용자 myusername과 연결된 프로세스만 표시합니다.


(3) x: 이 옵션은 터미널과 연결되지 않은 프로세스를 포함하여 모든 프로세스에 대한 정보를 표시하며 종종 a 옵션과 함께 사용됩니다.

 

PID TTY      STAT   TIME COMMAND
1   ?        Ss     0:01 /sbin/init
2   ?        S      0:00 [kthreadd]
3   ?        S      0:00 [rcu_gp]
4   ?        S      0:00 [rcu_par_gp]
5   ?        S      0:00 [kworker/0:0-mm_percpu_wq]
...

 

이 예에서 ps 명령은 -x 옵션과 함께 사용됩니다. 이 옵션의 기능은 다음과 같습니다.

-x: 이 옵션은 터미널과 연결되지 않은 프로세스를 포함하여 모든 프로세스에 대한 정보를 표시하도록 ps에 지시합니다.
이 명령의 출력에는 각 프로세스에 대한 여러 정보 열이 포함됩니다.

 

PID: 이 열은 프로세스의 프로세스 ID를 보여줍니다.
TTY: 이 열은 프로세스 또는 ?와 관련된 제어 터미널을 보여줍니다. 프로세스가 터미널과 연결되지 않은 경우.
STAT: 이 열은 프로세스 상태를 보여줍니다.
TIME: 이 열은 프로세스에서 사용한 총 CPU 시간을 보여줍니다.
COMMAND: 이 열에는 프로세스를 시작한 명령이 표시됩니다.

 

-x 옵션을 사용하면 ps는 터미널과 연결되지 않은 프로세스를 포함하여 시스템에서 실행 중인 모든 프로세스에 대한 정보를 표시합니다. 이는 시스템에서 실행 중인 백그라운드 프로세스 또는 데몬을 모니터링하는 데 유용할 수 있습니다.

 

ps -x의 출력에는 ps 명령을 실행하는 사용자의 권한에 따라 루트 또는 기타 권한이 있는 사용자로 실행 중인 많은 시스템 수준 프로세스가 포함될 수 있습니다.


(4) f: 이 옵션은 들여쓰기로 표시된 부모-자식 관계와 함께 프로세스를 트리 모양으로 표시합니다.

 

UID        PID  PPID  C STIME TTY          TIME CMD
john      1250     1  0 12:21 pts/0    00:00:00 bash
john      1263  1250  0 12:21 pts/0    00:00:00 top

 

이 예에서 ps 명령은 -f 옵션과 함께 사용됩니다. 이 옵션의 기능은 다음과 같습니다.

-f: 이 옵션은 ps에게 프로세스 계층 구조(부모-자식 관계) 및 추가 프로세스 속성을 포함하여 더 자세한 프로세스 목록을 표시하도록 지시합니다.
이 명령의 출력에는 각 프로세스에 대한 여러 정보 열이 포함됩니다.

 

UID: 이 열에는 프로세스를 시작한 사용자의 사용자 ID가 표시됩니다.
PID: 이 열은 프로세스의 프로세스 ID를 보여줍니다.
PPID: 이 열에는 프로세스의 상위 프로세스 ID가 표시됩니다.
C: 이 열은 프로세스의 CPU 사용량을 보여줍니다.
STIME: 이 열은 프로세스의 시작 시간을 보여줍니다.
TTY: 이 열에는 프로세스와 관련된 제어 터미널이 표시됩니다.
TIME: 이 열은 프로세스에서 사용한 총 CPU 시간을 보여줍니다.
CMD: 이 열에는 프로세스를 시작한 명령이 표시됩니다.

 

-f 옵션을 사용하면 ps는 프로세스 간의 상위-하위 관계를 포함하여 보다 자세한 프로세스 목록을 표시합니다. 이는 시스템의 프로세스 계층 구조를 이해하고 다른 프로세스의 자식으로 실행 중인 프로세스를 식별하는 데 유용할 수 있습니다.

 

ps -f의 출력은 시스템에서 실행 중인 프로세스의 수에 따라 상당히 길 수 있습니다. less 명령을 사용하여 한 번에 한 페이지씩 출력을 스크롤할 수 있습니다. 예를 들어 ps -f | less는 less 호출기에서 ps 출력을 표시합니다.


(5) e: 이 옵션은 다른 프로세스 정보와 함께 각 프로세스의 환경 변수를 보여줍니다.

 

PID TTY      TIME     CMD
1   ?        00:00:01 systemd
2   ?        00:00:00 kthreadd
3   ?        00:00:00 rcu_gp
4   ?        00:00:00 rcu_par_gp
...

 

이 예에서 ps 명령은 -e 옵션과 함께 사용됩니다. 이 옵션의 기능은 다음과 같습니다.

-e: 이 옵션은 ps에게 실행한 사용자에 관계없이 시스템에서 실행 중인 모든 프로세스에 대한 정보를 표시하도록 지시합니다.
이 명령의 출력에는 각 프로세스에 대한 여러 정보 열이 포함됩니다.

 

PID: 이 열은 프로세스의 프로세스 ID를 보여줍니다.
TTY: 이 열은 프로세스 또는 ?와 관련된 제어 터미널을 보여줍니다. 프로세스가 터미널과 연결되지 않은 경우.
TIME: 이 열은 프로세스에서 사용한 총 CPU 시간을 보여줍니다.
CMD: 이 열에는 프로세스를 시작한 명령이 표시됩니다.

 

-e 옵션을 사용하면 ps는 실행한 사용자에 관계없이 시스템에서 실행 중인 모든 프로세스에 대한 정보를 표시합니다. 이는 사용자 권한을 기반으로 필터링하지 않고 시스템에서 실행 중인 모든 프로세스의 전체 보기를 얻는 데 유용할 수 있습니다.

 

ps -e의 출력에는 ps 명령을 실행하는 사용자의 권한에 따라 루트 또는 기타 권한이 있는 사용자로 실행 중인 많은 시스템 수준 프로세스가 포함될 수 있습니다.


(6) C: 이 옵션을 사용하면 출력에 표시할 열을 선택할 수 있습니다.

 

PID TTY          TIME CMD
979 pts/0    00:00:00 bash
1234 pts/0    00:00:00 ps

 

이 예에서 ps 명령은 -C 옵션과 함께 사용됩니다. 이 옵션의 기능은 다음과 같습니다.

-C: 이 옵션은 특정 명령 이름을 가진 프로세스에 대한 정보를 표시하도록 ps에 지시합니다.

 

이 명령의 출력에는 각 프로세스에 대한 여러 정보 열이 포함됩니다.

PID: 이 열은 프로세스의 프로세스 ID를 보여줍니다.
TTY: 이 열은 프로세스 또는 ?와 관련된 제어 터미널을 보여줍니다. 프로세스가 터미널과 연결되지 않은 경우.
TIME: 이 열은 프로세스에서 사용한 총 CPU 시간을 보여줍니다.
CMD: 이 열에는 프로세스를 시작한 명령이 표시됩니다.

 

-C 옵션을 사용하면 ps는 특정 명령 이름과 일치하는 프로세스에 대한 정보를 표시합니다. 예를 들어 ps -C bash는 명령 이름이 bash인 모든 프로세스에 대한 정보를 표시합니다. 이는 특정 이름을 가진 프로세스를 모니터링하거나 특정 프로그램이 시스템에서 실행 중인지 확인하는 데 유용할 수 있습니다.

 

-C 옵션에는 검색할 명령 이름을 지정하는 인수가 필요합니다. 여러 명령 이름이 인수로 제공되는 경우 ps는 지정된 명령 이름이 있는 프로세스에 대한 정보를 표시합니다.


(7) r: 이 옵션은 실행 중인 프로세스만 표시합니다.

 

PID TTY          TIME CMD
979 pts/0    00:00:00 bash
1265 pts/0    00:00:00 top

 

이 예에서 ps 명령은 -r 옵션과 함께 사용됩니다. 이 옵션의 기능은 다음과 같습니다.

-r: 이 옵션은 ps에게 CPU 사용량의 역순으로 프로세스를 표시하도록 지시합니다.
이 명령의 출력에는 각 프로세스에 대한 여러 정보 열이 포함됩니다.

 

PID: 이 열은 프로세스의 프로세스 ID를 보여줍니다.
TTY: 이 열은 프로세스 또는 ?와 관련된 제어 터미널을 보여줍니다. 프로세스가 터미널과 연결되지 않은 경우.
TIME: 이 열은 프로세스에서 사용한 총 CPU 시간을 보여줍니다.
CMD: 이 열에는 프로세스를 시작한 명령이 표시됩니다.

 

-r 옵션을 사용하면 ps는 목록 맨 아래에 가장 많은 CPU 시간을 사용한 프로세스와 함께 CPU 사용량의 역순으로 프로세스를 표시합니다. 이것은 많은 CPU 리소스를 소비하고 성능 문제를 일으킬 수 있는 프로세스를 식별하는 데 유용할 수 있습니다.

 

-r 옵션은 Linux 시스템에서 일반적으로 사용되는 GNU 버전과 같은 일부 ps 버전에서만 사용할 수 있습니다. 다른 버전의 ps는 CPU 사용량별로 프로세스를 정렬하기 위해 다른 옵션이나 구문을 사용할 수 있습니다.


(8) z: 이 옵션은 좀비 프로세스만 표시합니다.

 

PID TTY      STAT   TIME COMMAND
 979 pts/0   Ss     0:00 bash
1234 pts/0   R+     0:00 ps -z

 

이 예에서 ps 명령은 -z 옵션과 함께 사용됩니다. 이 옵션의 기능은 다음과 같습니다.

-z: 이 옵션은 ps가 세션 ID별로 구성된 프로세스에 대한 정보를 표시하도록 지시합니다.
이 명령의 출력에는 각 프로세스에 대한 여러 정보 열이 포함됩니다.

 

PID: 이 열은 프로세스의 프로세스 ID를 보여줍니다.
TTY: 이 열은 프로세스 또는 ?와 관련된 제어 터미널을 보여줍니다. 프로세스가 터미널과 연결되지 않은 경우.
STAT: 이 열은 프로세스 상태를 표시하며, 프로세스가 실행 중(R), 휴면(S), 중지(T) 또는 좀비(Z)인지 여부를 나타내는 여러 문자 중 하나일 수 있습니다.
TIME: 이 열은 프로세스에서 사용한 총 CPU 시간을 보여줍니다.
COMMAND: 이 열에는 프로세스를 시작한 명령이 표시됩니다.

 

-z 옵션을 사용하면 ps는 세션 ID로 구성된 프로세스에 대한 정보를 표시합니다. 세션은 동일한 터미널 또는 로그인 세션과 연결된 프로세스 모음입니다. 세션별로 프로세스를 그룹화함으로써 ps는 어떤 프로세스가 어떤 사용자 세션 또는 터미널과 연관되어 있는지 식별하는 데 도움을 줄 수 있습니다.

 

-z 옵션은 macOS 시스템에서 일반적으로 사용되는 BSD 버전과 같은 일부 ps 버전에서만 사용할 수 있습니다. 다른 버전의 ps는 세션별로 프로세스를 구성하기 위해 다른 옵션이나 구문을 사용할 수 있습니다.


(9) l: 이 옵션은 프로세스의 우선 순위 및 일정 정책과 같은 각 프로세스에 대한 추가 정보를 포함하는 긴 형식 출력을 표시합니다.

 

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S  1000  1724  1711  0  80   0 - 24388 wait   pts/0    00:00:00 bash
0 R  1000  1782  1724  0  80   0 - 18612 -      pts/0    00:00:00 ps

 

이 예에서 ps 명령은 -l 옵션과 함께 사용됩니다. 이 옵션의 기능은 다음과 같습니다.

-l: 이 옵션은 ps에게 각 프로세스에 대한 자세한 정보를 긴 형식으로 표시하도록 지시합니다.
이 명령의 출력에는 각 프로세스에 대한 여러 정보 열이 포함됩니다.

 

F: 이 열에는 프로세스와 관련된 플래그가 표시됩니다.
S: 이 열은 프로세스 상태를 표시하며, 프로세스가 실행 중(R), 휴면(S), 중지(T) 또는 좀비(Z)인지 여부를 나타내는 여러 문자 중 하나일 수 있습니다.
UID: 이 열에는 프로세스를 소유한 사용자의 사용자 ID가 표시됩니다.
PID: 이 열은 프로세스의 프로세스 ID를 보여줍니다.
PPID: 이 열에는 프로세스의 상위 프로세스 ID가 표시됩니다.
C: 이 열은 마지막 업데이트 이후 프로세스에서 사용한 CPU 시간의 백분율을 보여줍니다.

PRI: 이 열은 프로세스 우선 순위를 보여줍니다.
NI: 이 열은 다른 프로세스에 상대적인 우선 순위를 결정하는 프로세스 좋은 값을 보여줍니다.
ADDR: 이 열은 프로세스의 메모리 주소를 보여줍니다.
SZ: 이 열은 메모리에 있는 프로세스의 크기를 보여줍니다.
WCHAN: 이 열에는 프로세스가 대기 중인 커널 기능의 이름이 표시됩니다.
TTY: 이 열은 프로세스 또는 ?와 관련된 제어 터미널을 보여줍니다. 프로세스가 터미널과 연결되지 않은 경우.
TIME: 이 열은 프로세스에서 사용한 총 CPU 시간을 보여줍니다.
CMD: 이 열에는 프로세스를 시작한 명령이 표시됩니다.

 

-l 옵션을 사용하면 ps는 각 프로세스에 대한 자세한 정보를 긴 형식으로 표시합니다. 이는 각 프로세스의 상태 및 동작에 대한 보다 완전한 그림을 얻는 데 유용할 수 있습니다. -l 옵션은 Linux 시스템에서 일반적으로 사용되는 GNU 버전과 같은 일부 ps 버전에서만 사용할 수 있습니다. 다른 버전의 ps는 자세한 프로세스 정보를 표시하기 위해 다른 옵션이나 구문을 사용할 수 있습니다.

댓글