ps
(Process Status) : 현재 실행중인 프로세스 목록을 보여주는 명령어
구문
ps [OPTIONS]
linux 에서는 여러 개의 프로세스가 동시에 실행되며, ps
명령어로 현재 실행되는 프로세스들의 정보를 얻을 수 있다.
또한 프로세스 중에서 CPU, 메모리 등을 많이 점유하고 있거나, 지나치게 많은 자식 프로세스를 생성하는 등 시스템 속도가 느려진 경우 ps
명령어로 시스템 오류를 감지할 수 있다.
option | meaning |
---|---|
-a | 세션 리더와 터미널과 연관이 없는 프로세스를 제외한 모든 프로세스를 출력 |
a | BSD 스타일로 터미널과 연관된 모든 프로세스(다른 유저의 프로세스도) 를 출력하거나, x 옵션과 함께 사용되어 모든 프로세스를 출력 |
-d | 세션 리더를 제외한 모든 프로세스들을 출력 |
r | 실행 프로세스만 출력 |
x | BSD 스타일로 혼자 사용되면 사용자에 의해 소유된 모든 프로세스 출력하며, a 옵션과 함께 사용되어 모든 프로세스 출력 |
-l | 상세 내용을 함께 출력 |
-e | 모든 프로세스 출력 |
-f | 풀 포맷으로 목록을 출력 |
-h | 메뉴 x (PID, TTY, STAT, TIME, CMD 등 |
-j | 작업에 관련된 ID 를 출력 |
u | 프로세스 실행 user, CPU, memory, usage, 상태 등 출력 |
f | 프로세스 간 상속관계를 트리구조로 출력 |
n | 사용자의 정보를 (모든 형식의 UID 와 GID 를 포함하여) 숫자로 표시 |
-w | 출력결과를 생략하지 않고 넓게 출력 |
option | meaning |
---|---|
PID(process ID) | 프로세스마다 주어지는 번호 |
TTY(Tele Typewriter) | 명령어가 실행되는 터미널의 번호, 할당된 것이 없는 경우 물음표(?) 출력 |
STAT | 실행되고 있는 프로세스 상태 (R, S, D, T, Z, W, N) |
TIME | CPU 가 사용한 시간 |
USER | 사용자 이름 |
COMMAND | 사용자가 실행한 명령어 |
UID | 사용자의 ID |
PGID | 사용자 부모 프로세스의 그룹 ID |
SID(Session ID) | 세션 ID |
PRI(PRlority) | 실행하는 우선순위에 따른 프로세스 |
NI(NIce) | nice 에 의한 우선순위에 따른 프로세스 |
RSS(Resident Set Size) | 프로세스가 사용하는 메모리의 크기 |
SZ(SiZE) | 프로세스가 사용하는 자료와 스택의 크기 |
SHRD(SHareD) | 프로세스가 사용하는 공유 메모리 |
%CPU | 프로세스가 사용하는 CPU 점유율 |
%MEM | 프로세스가 사용하고 있는 메모리 점유율 |
WCHAN | 프로세스가 실행하고 있는 커널 루틴 |
VSZ | KiB 단위(1024 바이트) 의 프로세스의 버추얼 메모리 크기 |
STAT (프로세스의 상태)
D
: Uninterruptable sleep (종료할 수 없는, 깨울 수 없는 sleep 상태)R
: 실행 중, 또는 실행 가능한 상태S
: Interruptible sleep (종료할 수 있는, 깨울 수 있는 sleep 상태)T
: 중지됨 (작업 제어 신호를 받거나, 트레이싱 때문)X
: 죽음Z
: Defunct(좀비) 프로세스. 종료되었으나 부모프로세스에 의해 수습되지 않음
$ ps -e
$ ps ax
$ ps aux
$ ps -e | grep mysqld
$ ps -ef | grep -v python | awk '{print $2}'
USER PID ...
root 812 ...
root 815 ...
awk
: 파일에서 특정 문자열을 검색하여 가공하기 위한 명령어로 콘솔 출력에 적용 가능
awsk 'patter'
,awk {action}
,awk 'pattern {action}
등의 문법을 사용
$ ps -e | more
실행되고 있는 전체 프로세스 확인이 필요한 경우 less 또는 more 을 사용하여 페이지 단위로 확인하기도 한다.
Reference