Process monitoring

 

Summry

프로세스(Process)란 작업 중인 프로그램을 운영체제가 관리하는 기본 단위로 프로그램이 실행되면 프로세스가 생성된다.
악성 프로그램 탐지 및 불필요한 서비스 실행 여부 확인을 위해서는 프로세스 모니터링이 필요하다.

본 문서에서는 간단한 프로세스 모니터링 방법을 정리한다.

send me email if you have any questions.


1. ps 명령어를 통한 모니터링

주요 옵션
-를 붙이지 않음(BSD 옵션), -를 붙임(UNIX 옵션), –를 붙임(GNU 옵션)

옵션 설명
a 모든 프로세스 표시
f 프로세스의 부모 관계를 트리로 표시
l 긴 포맷으로 표시
r 실행 중인 프로세스만 표시
u 실행 유저명도 함께 표시
x 제어 단말이 없는 프로세스도 함께 표시
w 긴 행은 문자열을 잘라 표시
U user 해당 사용자가 실행한 프로세스만 표시
Z SELinux용 데이터 표시
-C command 명령어 선택
-e 모든 프로세스 표시
-t consolename 접속한 콘솔에서 실행한 프로세스 표시
-u UID 해당 사용자 ID가 실행한 프로세스 표시

ps 명령어 표시 항목

항목 설명
USER 실행 사용자명
PID 프로세스 ID
%CPU CPU 사용률
%MEM 메모리 사용률
VSZ 프로세스가 사용한 메모리양
RSS 현재 사용 중인 메모리양
TTY 제어 단말명
STAT 프로세스의 상태 (S: 슬립 상태, D: 인터럽트 불가능한 슬립 상태, R: 실행 상태, T: 프레이스 중 혹은 정지 중인 상태, Z: 소멸한 프로세스, W: 스왑 아웃한 프로세스) 와 우선도 (N: 우선도 낮음, <: 우선도 높음)
TIME 소모한 CPU

예) 시스템에서 실행되는 모든 프로세스 표시

$ ps aux

2. top 명령어를 통한 모니터링

top 명령어는 CPU 및 메모리 사용률, 시스템 평균 부하 등의 시스템 상태를 지속해서 모니터링 하기 위한 명령어이다.
명령 시점의 상태를 보여주는 ps 명령어와 달리 실시간으로 상태를 지속해서 보여준다.

top 명령어 표시 항목

항목 설명
USER 사용자명
PID 프로세스 ID
%CPU CPU 점유율(%)
%MEM 물리 메모리 점유율(%)
NI nice 값
VIRT 사용 중인 가상 메모리(KB)
RES 사용 중인 실제 메모리(KB)
SHR 공유 메모리 크기(KB)
S 프로세스 상태
TIME+ 프로세스가 시작한 이후 사용한 CPU 시간 총계
COMMAND 실행한 명령어

top 명령어 사용 중 조작

명령어 설명
space 즉시 내용 업데이트
f 대화형 모드로 전환
l 평균 부하 표시/미표시
m 메모리 정보 표시/미표시
t 프로세스와 CPU 상태 표시/미표시
P CPU 사용률 순으로 정렬
M 메모리 사용률 순으로 정렬
K 프로세스에 TERM 시그널 전송