리눅스마스터2급강좌 : 실행중인 프로세스 정보출력(ps)
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 3,242 조회
- 0 추천
- 목록
본문
리눅스마스터2급강좌 : 실행중인 프로세스 정보출력(ps)
ps
ps는 현재 실행중인 프로세스에 대한 상세한 정보를 출력한다.
리눅스는 다중 사용자(Multi- user), 다중 작업(multi-tasking) 시스템이기 때문에 여러 개의 작업(job), 즉 프로세스가 동시에 실행된다.
그리고 사용자는 프로세스 아이디(PID)를 사용하여 작업을 중지하거나, 우선순위를 변경하는 등의 작업을 할 수 있다.
이때 현재 실행중인 프로세스의 정보를 얻기 위해 ps 명령어를 사용한다.
그리고 ps 명령어로 어떤 프로세스가 CPU를 지나치게 많이 사용했거나, 지나치게 많은 자식 프로세스를 가지고 있거나,
특정 응용 프로그램이 현저하게 속도가 느려지는 경우 이 명령어로 분석하여 시스템의 비정상 작동을 감지하여 오류를 수정할 수 있다.
ps의 명령 형식은 다음과 같다.
|
|
|
| ps [options] |
|
|
|
|
다음은 ps 명령어에 사용되는 주요한 옵션들에 대한 설명이다.
옵션 | 의미 |
-a | 세션 리더와 터미널과 연관이 없는 프로세스를 제외한 모든 프로세스를 출력한다. |
a | BSD 스타일로서 터미널과 연관된 모든 프로세스를 출력하거나, x 옵션과 함께 사용되어 모든 프로세스를 출력한다.
|
-d | 세션 리더를 제외한 모든 프로세스들을 출력한다. |
-e | 모든 프로세스를 출력한다.
-A와 동일한 옵션이다. |
r | 실행 프로세스만 출력한다. |
x | BSD 스타일로서 혼자 사용되면 사용자에 의해 소유된 모든 프로세스를 출력하고 a 옵션과 함께 사용되어 모든 프로세스를 출력한다. |
-l | 상세한 내용을 출력한다.
-c 옵션은 단순한 정보를 출력한다.
|
-F | 아주 완전한 형식(extra full format)을 출력한다. |
-f | 완전한 형식의 목록을 출력한다. |
-h | 메뉴는 보여주지 않는다(PID, TTY, STAT, TIME, COMMAND 등). |
-j | 작업에 관련된 ID를 출력한다. |
-l | -j 옵션보다 자세하게 정보를 출력한다.
|
u | 사용자 친화적인 형식으로 출력한다. |
-y | 플래그(flags)를 보여주지 않는다.
addr 대신 rss를 보여준다.
이 옵션은 –l 옵션과 함께만 사용될 수 있다. |
e | 명령에 따르는 환경들을 함께 출력한다(-e 옵션과 다르다) |
f | 프로세스 간 상속관계를 트리구조로 보여준다. |
n | 사용자의 정보를 (모든 형식의 UID와 GID를 포함하여) 숫자로 표시한다. |
-w | 출력결과를 생략하지 않고 넓게 출력한다(w 옵션도 동일하다). |
옵션 없이 ps 명령어를 실행하면 현재 터미널과 관련된 프로세스들에 대한 정보를 출력하는데, 여기에는 프로세스 ID, 터미널 번호, 실행 시간, 명령어 이름을 볼 수 있다.
ps에 특정 옵션을 더해서 명령을 내렸을 때 출력되는 화면의 윗부분에 나타나는 메뉴들의 뜻은 다음과 같다.
옵 션 | 의미 |
PID(process ID) | 프로세스마다 주어지는 번호 |
TTY(TeleTypewriter) | 명령어가 실행되는 터미널의 번호. 할당된 것이 없는 경우 물음표(?) 출력 |
STAT(SteTe) | 실행되고 있는 프로세스 상태(R,S,D,T,Z,W,N) |
START(START) | 프로세스가 시작된 시간 |
TIME(TIME) | CPU가 사용한 시간 |
USER(USER) | 사용자의 이름 |
COMMAND(COMMAND) | 사용자가 실행한 명령어 |
UID(User ID) | 사용자의 ID |
PGID(Parent Group ID) | 사용자 부모 프로세스의 그룹 ID |
SID(Session ID) | 세션 ID |
PRI(PRIority) | 실행하는 우선 순위에 따른 프로세스 |
NI(NIce) | nice에 의한 우선 순위에 따른 프로세스 |
RSS(Resident Set Size) | 프로세스가 사용하는 메모리의 크기 |
SZ(SiZe) | 프로세스가 사용하는 자료와 스택의 크기 |
SHRD(SHareD) | 프로세스가 사용하는 공유메모리 |
%CPU | 프로세스가 사용하는 CPU 점유율 |
%MEM | 프로세스가 사용하고 있는 메모리 점유율 |
WCHAN | 프로세스가 실행하고 있는 커널 루틴 |
VSZ | KiB 단위(1024 바이트 단위)의 프로세스의 버추얼 메모리 크기(vsize와 동일한 의미). |
일반적으로 ps 명령을 사용할 때에는 ax, axu 및 -e 옵션을 많이 사용한다.
ax와 aux는 BSD 형식으로 시스템상의 모든 프로세스를 출력한다.
그리고 -e 옵션은 표준 형식으로 시스템상의 모든 프로세스를 출력한다(-A, -ef, -eF, -ely 도 같은 의미이다). 다음과 같다.
|
|
|
| # ps –e # ps ax # ps axu |
|
|
|
|
그런데 이렇게 하면 출력 내용이 너무 많기 때문에 파이프(|)와 grep 명령을 사용하여 특정 프로세스만 보거나 파이프(|)와 more 명령(또는 less 명령을 사용하기도 한다)을 사용하여 페이지 단위로 끊어서 내용을 확인하기도 한다.
|
|
|
| # ps ax | grep mysqld # ps ax | more |
|
|
|
|
관련자료
-
이전
-
다음