프로세스
리눅스 커널 상에서 동작하고 있는 모든 프로그램
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 | 대기중인 프로세스가 있는 커널 함수의 주소 | - : 프로세스가 동작중임을 나타냄 |
'Server > linux공통' 카테고리의 다른 글
백그라운드(Background) 작업과 포어그라운드(Foreground) 작업 fg bg jobs (0) | 2019.04.15 |
---|---|
커널(kernel)의 이해 (0) | 2019.04.15 |
사용자의 기본로그인쉘종류를 설정하는 방법 chsh (0) | 2019.04.15 |
pci slot 현황 파악 (0) | 2019.04.15 |
허가권(퍼미션)과 소유권 permission, chown, chmod (0) | 2019.04.14 |