ps 명령어 사용법

■ BSD Style 옵션

a : BSD Style 옵션을 사용하겠음.

x : BSD Style (모든 프로세스)

j : BSD job cotrol format

f : 쓰레드를 트리형태로 출력

 

 

■ 일반 옵션

-a : 최근에 많이 실행된 제어 터미널을 가진 프로세스의 정보를 출력

-e : 모든 프로세스 (=-A)

-f : Full-format

-H : 쓰레드를 트리형태로 출력

-e : 모든 프로세스(-A와 같다)

-f : full listing으로 보여준다(자세히 보여준다)

-F : 더 자세히 보여준다

-l : long format으로 보여준다.

-y : flag를 안보여준다. -l 옵션하고만 사용할 수 있다고 한다;

--cols 500 : 500 컬럼을 기준으로 보여준다. (명령행 라인의 모든 파라메터를 볼 때)

-U : real UID

-u : effective UID

u : 사용자 지향 형식으로 출력

 

 

■ 예제

모든 프로세스 보기

ps ax

ps axu

ps -ejH

ps axjf

 

트리형식으로 보기

ps -eLf

ps axms

 

프로세스의 보안정보 보기

ps -eo euser,ruser,suser,fuser,f,comm,label

ps axZ

ps -eM

 

사용자 형식으로 모든 root(real & effective ID)로 실행중인 프로세스 보기

 

ps -U root -u root u

 

 

■ 좀비 프로세스

부모 프로세스가 자식 프로세스를 정상적으로 종료시키지 못하는 상태일때 발생(버그).

 

찾기

ps -ef | grep defunct | grep -v grep

 

좀비 프로세스 모두 죽이기

ps -ef | grep defunct | awk '{print $3}' | xargs kill -9

 

좀비 수 확인

top -b -n 1 | grep zombie

ps -ef | grep defunct | grep -v grep | wc -l

 

좀비 부모 프로세스 확인 후 조치

kill -s SIGCHLD <좀비 프로세스의 PPID>

 

 

■ 컬럼 설명

UID

User ID의 약자, CMD에 보이는 프로세스를 실행 시키는 프로세스의 소유자를 의미

 

PID

Process ID의 약자, 실행된 프로세스에 부여된 숫자를 의미

 

PPID

Parents Process ID의 약자, 프로세스를 생성한 부모 프로세스의 PID

 

C

프로세스 스케줄링을 위한 CPU 사용량, 현재는 사용되지 않는 필드

 

STIME

Start Time, 프로세스가 시작된 시간을 '월:일' 혹은 '시:분:초'로 나타냄

 

TTY

Teletype의 약자, 프로세스가 연결된(수행되고 있는) 제어 터미널을 표시, '?'는 제어 터미널에 연결 되어 있지 않음을 나타냄

 

TIME

프로세스에 의해 사용된 CPU 사용 시간을 '시:분' 형태로 나타냄

 

CMD

실행된 프로세스 명을 나타냄

위로 스크롤