■ 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
실행된 프로세스 명을 나타냄