본문 바로가기

Server/linux공통

프로세스(Process) 관리 ps

프로세스

리눅스 커널 상에서 동작하고 있는 모든 프로그램

 

PID(ProcessID)

리눅스 커널은 프로세스가 동작할 때 각 프로세스마다 고유ID를 증가시키면서 부여하는 번호

PID는 1번부터 시작하며 1 PID는 init 이며 PID가 최대값 도달시 다시 낮은 번호로 새롭게 동작하는 포르세스에 부여

ps로 작동중인 프로세스상태를 확인

 

프로세스 작동 상황 알아보기 ps

ps 명령의 옵션에 따라 자세한 프로세스 정보를 알아 볼 수 있다.

옵션없이 실행시 현재 실행중인 프로세스에 대한 간단한정보(PID, TTY,TIME,CMD)를 보여줍니다.

 

옵션 의미
-A 모든 프로세스에 대한 정보 출력 -e 옵션과 동일
-ABS(가장 많이 요청되는 프로세스에 대한 정보 출력, 터미널과 관련이 없는 프로세스는 보여주지 않음
-e  시스템상의 모든 프로세스에 대한 정보 출력
-f  전체 목록 출력
-P 프로세스와 연결되어 있는 프로세서 수
-u 사용자의 프로세스 목록 출력

 

 

-ef 옵션

-ef 옵션을 지정하여 ps 명령을 실행하면 앞서 실행했던 명령의 결과보다더 자세하게 

프로세스 정보(UID, PID,PPID,C,STIME,TTY,TIME,CMD)를 보여줍니다.

 

 

-axj 옵션

PPID, PID, PGID, SID, TTY, TTGID, STAT, UID, TIME, COMMAND 등 프로세스에 대한 보다 상세한 정보를 얻을 수 있습니다

 

PID : 위에서 언급 프로세스 번호

PPID : 부모 PID를 가르키는 것으로 부모 프로세스로부터 분기된 프로세스 PID라는 것 의미 

init와 같이  PPID값이 0번이라면 부모 프로세스가 없을을 의미 

1번 PPID 값을 갖는 프로세스는 그 자신이 부모 프로세스를 의미

PPID 값이 부모프로세스의 PID와 동일한 프로세스는 자식 프로세스로 인식

 

TTY  : 프로레스 제어하는 터미널 모드

로컬 로그인시 tty+ 가상터미널수 즉 tty1 과 같은 식으로 표시되며 엑스터미널이나 원격로그인시

pts/s번호 (예 pts/0) 과 같은 형태로 표시된다.

TTY 필드에서 물음표(?) 기호로 표시되어 있는 것은 프로세스가 tty와는 무관하게 작동하는것을 말한다.

 

STAT :  STAT 코드는 세 개의 필드로 구성되어 프로세스 상태를 보여줍니다. 첫 번째 필드는 D,R,S,T,X,Z 코드가 위치하는 데 

이들 코드의 의미는 다음과 같다.

 

코드분류 의미
D IO 와 같이 중지(interrupt)시킬 수 없는 잠자고 있는(휴지) 프로세스 상태
R 현재 동작중이거나 동작할 수 있는 상태
S 잠자고 있지만 중지시킬 수 있는 상태
T 작업 제어 시그널로 정지되었거나 추적중에 있는 프로세스 상태
X 완전히 죽어 있는 프로세스
Z 죽어 있는 좀비 프로세스

두번째 세번째 필드 코드

코드분류 의미
< 프로세스의 우선 순위가 높은 상태
N 프로세스의 우선 순위가 낮은 상태
L 실시간이나 기존 IO를 위해 메모리 안에 잠겨진 페이지를 가진 상태
s 세션 리더(주도 프로세스)
l 멀티 쓰레드
+ 포어그라운드 상태로 동작하는 프로세스

 

STAT 필드에서 Z로 되어있는 프로세스(좀비 프로세스)는 프로세스 작동이 잘못되어 죽어있는 상태로, 시스템 관리자는 이러한 불필요한

프로세스를 발견할때마다 제거해 줄 필요가 있습니다. 왜냐하면 이러한 고착상태에 있는 불필요한 프로세스들이 시스템 자원을 고갈할 수 있으므로 시스템에 좋지 않은 영향을 줄 수 있기 때문입니다.

 

STIME, TIME : STIME 프로세스 시간 TIME은 프로세스가ㅣ 총 소비한 CPU총시간을 말합니다.

CMD : 프로세스의 명령을 의미

 

옵션 -l, -c : 사용자가 실행한 프로세스 목록 출력

-l옵션을 사용시 항목(사용자 실행 프로세스 확인 ps -l)

 

 

필드 설명          
F 프로세스와 연관된 플래그            
S 프로세스상태 S 대기중인 프로세스      
R 동작중인 프로세스      
X 가용 메모리를 위해 대기중인 프로세스  
PRI 프로세스 순위 -c 옵션이 있으면 큰 수가 높은 순위도를 가짐
-c 옵션이 없으면 큰 수는 작은 순위도를 가짐
NI 나이스 값으로 프로세스 순위결정 값이 낮을수록 순위도는 높음 -c 옵션에서 보이지않는 필드
ADDR 프로세스의 메모리 주소            
SZ 크기를 나타내는 필드로 프로세스의 전체 페이지 수 페이지 사이즈는 하드웨어 플랫폼에 따라 각기 다름
WCHAN 대기중인 프로세스가 있는 커널 함수의 주소 - : 프로세스가 동작중임을 나타냄