관리 메뉴

IT창고

리눅스 프로세스2 본문

서버운영/Linux

리눅스 프로세스2

방구석여포 2020. 11. 11. 23:37

이번 글에서는 이전에 리눅스 프로세스에 관한 설명에 추가 내용을 알아보도록 하겠습니다.

이전 리눅스 프로세스 관련 내용은 아래에 링크를 참고 합니다.

2017/08/29 - [서버운영/Linux] - 리눅스 프로세스

 

리눅스의 프로세스는 ps 명령어로 확인이 가능합니다. 

ps명령어는 현재 실행중인 프로세스 목록과 상태를 보여주는데 이 프로세스의 상태를 확인하는 방법에 대해 알아보도록 하겠습니다.

 

일반적으로 리눅스 프로세스 확인은 'ps -ef' 명령어만 알고 있다면 충분합니다. 

다만 이것도 UNIX, BSD, GNU에 따라 미묘하게 옵션의 종류나 사용법이 달라지는데 BSD의 경우 '-' 없이 옵션을 사용하며 GNU의 경우 '--'로 '-'를 하나 더 붙여서 사용합니다. 

 

그럼 ps의 옵션에 대해 알아보도록 하겠습니다.

옵션 설명
-e 모든 프로세스에 대한 정보를 출력 (-A 옵션과 동일)
-f 전체 형식 목록을 출력 (해당 옵션은 유닉스 스타일 옵션과 합쳐서 사용 가능)
-a 로그인한 쉘과 터미널에 연결되지 않은 프로세스를 제외한 모든 프로세스 출력
-u 특정 UID의 프로세스 목록 출력
-x 프로세스의 상태와 함께 모든 프로세스 목록 출력
-H 프로세스를 계층 형식으로 출력 (forest)
-m 프로세스와 커널 스레드도 함께 출력
-p 특정 PID의 프로세스 목록 출력

위의 옵션표는 ps명령어에서 많이 사용될 법한 옵션들 입니다. 대부분의 경우엔 e, f옵션을 주로 사용합니다.

 

이번에는 aux 옵션을 사용하여 위와 같이 프로세스 상태를 출력하였습니다. 

ps -ef 명령어 사용 시 확인되는 필드가 좀 더 많아졌는데 자세히 알아보도록 하겠습니다. 

 

필드가 많으므로 아래에 표로 정리하였습니다.

ps 항목 설명
USER 프로세스의 소유자 이름
PID 프로세스 식별번호
%CPU CPU 사용량 (cputime/realtime ratio)
%MEM 메모리 사용량 
VSZ 프로세스의 가상 메모리 크기
RSS 비례 세트 크기 (resident set size) - 작업에서 사용한 스왑되지 않은 프로세스에 할당된 물리적 메모리 크기
TTY 프로세스와 연결된 터미널 
STAT 프로세스의 상태코드
TIME 총 CPU 사용 시간
COMMAND 프로세스 실행 명령행 

ps 항목에 대한 설명이며 이 중에서 다음으로 알아볼 부분은 프로세스의 상태코드 입니다. 

위의 사진에서 상태코드를 보면 S, Ss, S< 와 같은 상태코드를 볼 수 있는데 이 프로세스 상태코드에 대해 알아보도록 하겠습니다.

상태코드 설명
D IO와 같이 중지시킬 수 없는 잠자고 있는 프로세스 상태
R 실행 중이거나 실행 가능한 프로세스 상태
S 잠자고 있지만 중지시킬 수 있는 프로세스 상태
T 작업 제어 신호에 의해 중지된 상태
t 디버거에 의한 추적중 중지된 상태
X 죽은 프로세스 상태
Z 좀비 프로세스 상태

위의 상태코드에서 추가로 같이 사용되는 추가문자가 존재하는데 아래에 상태코드와 추가로 사용되는 두번째, 세번째 상태코드 대해 확인해보겠습니다.

추가 상태코드 설명
< 프로세스 우선순위가 높은 상태
N 프로세스 우선순위가 낮은 상태
L 실시간 및 사용자 지정 IO를 위해 잠겨진 페이지를 가진 상태
s 세션 리더 
l 멀티 스레드
+ foreground 상태로 작동중인 상태

ps -x 명령어로 상태코드를 위와 같이 확인하였습니다 

상태코드표에서 확인 했듯이 위의 사진과 같이 추가 상태코드가 붙어 프로세스의 상태를 확인해볼 수 있습니다.

'서버운영 > Linux' 카테고리의 다른 글

nGrinder 설치 및 사용법  (0) 2020.12.01
Jira 설치  (0) 2020.11.22
Nexus Repository OSS 설치  (0) 2020.11.04
ELK(Elasticsearch,Logstash,Kibana) 설치  (0) 2020.03.25
Linux Nginx Comfile Install  (0) 2019.12.30
Comments