리눅스 PS 명령어 프로세스 조회
프로세서란?
1930년대 MULTICS라는 시스템을 설계한 처음으로 프로세스라는 말을 사용했다고 합니다.
이는 일반적으로 실행 중인 프로그램이라는 개념을 말합니다.
PS 명령어 소개
PS 명령어는 현재 시스템에서 돌고있는 프로세스를 보여주는 가장 기본적인 명령어 이며,
또한 실행중인 프로세스의 목록을 출력하주는 명령어 입니다.
리눅스에서 프로세스는 자신의 고유한 주소 공간을 가진 프로그램으로 실행 중인 명령어와 반드시 프로세스들로 구성이 되어 있습니다.
서버관리자에게는 서버의 상태를 파악하기 위하여 프로세스 상태를 관라자가 파악할때에 사용하는 명령어 입니다 가장 흔하게 실행하는 명령어 가운데 하나이며, 서버관리에 있어서는 없어서는 안될 매우 중요한 명령어라고 할 수있습니다.
ps 출력정보
PID(process ID) : 프로세스마다 주어지는 번호 입니다.
TTY(Tele Typewriter) : 명령어가 실행된는 터미널의 번호, 할당된 것이 없는 경우 (?)가 출력됩니다.
STAT : 실행되고 있는 프로세스 상태(R, S, D, T, Z, W, N)
START : 프로세스가 시작된 시간 입니다.
TIME : CPU가 사용한 시간입니다.
USER : 사용자의 이름입니다.
COMMAND : 사용자가 실행한 명령어입니다.
UID(User ID) : 사용자의 ID 입니다.
PGID(Parent Group ID) : ㅅ사용자 부모 프로세스의 그룹 ID 입니다.
SID(Seesion ID) : 세션 ID 입니다.
PRI(PRIority) : 실행하는 우선순위에 따른 프로세스 입니다.
NI(NIce) : nice에 의한 우선순위에 따른 프로세스 입니다.
RSS(Resident Set Size) : 프로세스가 사용하는 메모리 크기 입니다.
SZ(Size) : 프로세스가 사용하는 자료와 스택의 크기 입니다.
SHRD(SHaRD) : 프로세스가 사용하는 공유메모리 입니다.
%CPU 프로세스가 사용하는 CPU 정유율 입니다.
WCHAN 프로세스가 실행하고 있는 메모리 점유율 입니다.
VSZ : KiB 단위(1024 바이트 단위)의 프로세스의 비주얼 메모리 크기(vsize)와 동일한 의미)입니다.
PS명령어 사용법
옵션 없이 PS 명령어를 실행하면 현재 터미널과 관련된 프로세스들에 대한 정보를 출력합니다.
모든 프로세스 표시하기
옵션 : ps -ef
[root@web ~]# ps -ef
일반적으로 ps 명령을 사용할 때에는 ax, axu 및 -e 옵션을 많이 사용합니다.
ax와 aux는 RSD형식으로 시스템상의 모든 프로세스를 출력합니다.
그리고 -e 옵션은 표준 형식으로 시스템상의 모든 프로세스를 출력합니다.
프로세스 목록 혹은 특정 프로세스 보기
명령어 : ps -ef | less
[root@web ~]# ps -ef | less [root@web ~]# ps -ef | more [root@web ~]# ps -ef | grep httpd
less 명령어를 파이프하여 사용하면 보여지는 목록을 제어하며 프로세스를 확인할 수 있습니다.
ps -ax만 입력하면 출력 내용이 너무 많기 때문에 파이프( | )와 grep을 사용하여 특정 프로세스만 보거나 파이프( | )와 more 명령(또는 less 명령을 사용하기도 합니다.)을 사용하여 페이지 단위로 끊어서 내용을 확인하기도 합니다.
PS 옵션
PS [options]
ps 명령어에 사용되는 주요한 옵션들 입니다.
옵션 |
의미 |
-a |
세션 리더와 터미널과 연관이 없는 프로세스를 제외한 모든 프로세스를 출력합니다. |
a |
BSD 스타일로서 터미널과 연관된 모든 프로세스를 출력하거나, x 옵션과 함께 사용되어 모든 프로세스를 출력합니다. |
-d |
세션 리더를 제외한 모든 프로세스들을 출력합니다. |
-e |
모든 프로세스를 출력합니다. |
r |
실행 프로세스만 출력합니다. |
x |
BSD 스타일로서 혼자 사용되면 사용자에 의해 소유한 모든 프로세스를 출력하고 a 옵션과 함께 사용되어 모든 프로세스를 출력합니다. |
-l |
상세한 내용을 출력합니다. -c 옵션은 단순한 정보를 출력합니다. |
-F |
아주 완전한 형식(extra full format)으로 출력합니다. |
-f |
완전한 형식의 목록을 출력합니다. |
-h | 메뉴는 보여주지 않습니다(PID, TTY, STAT, TIME, COMMAND 등) |
-j | 작업에 관련된 ID를 출력합니다. |
u | 사용자 친화적인 형식으로 출력합니다. |
-y | 플래그(flags)를 보여주지 않습니다 |
e | 명령에 따르는 환경들을 함께 출력합니다(-e 옵션과 다릅니다.) |
f | 프로세스 간 상속관계를 트리구조로 보여줍니다. |
n | 사용자 정보를(모든 형식의 UID와 GID를 포함하여) 숫자로 표시합니다. |
-w | 출력결과를 생략하지 않고 넓게 출력합니다(w옵션과 동일) |