Linux 프로세스 관리 - ps, top, htop



Linux에서 실행 중인 프로세스를 확인하고 관리하는 명령어들입니다.



주요 명령어


ps aux | grep java    # java 프로세스 찾기
top -p PID # 특정 PID 모니터링
kill -9 PID # 프로세스 강제 종료


ps 명령어


# 모든 프로세스 자세히 보기
ps aux

# 특정 프로세스 찾기
ps aux | grep java
ps aux | grep tomcat

# 프로세스 트리로 보기
ps auxf

# 특정 사용자 프로세스
ps -u username

# PID로 프로세스 정보
ps -p 1234

# 메모리 많이 사용하는 프로세스
ps aux --sort=-%mem | head -10

# CPU 많이 사용하는 프로세스
ps aux --sort=-%cpu | head -10


top 명령어


# 실시간 모니터링
top

# 특정 PID 모니터링
top -p 1234

# 특정 사용자 프로세스만
top -u username

# 배치 모드 (스크립트용)
top -b -n 1

# 단축키 (top 실행 중)
# q: 종료
# k: 프로세스 종료 (PID 입력)
# M: 메모리 순 정렬
# P: CPU 순 정렬
# 1: CPU 코어별 사용량
# c: 전체 명령어 표시


htop (향상된 top)


# 설치
yum install htop # CentOS/RHEL
apt install htop # Ubuntu/Debian

# 실행
htop

# 단축키
# F2: 설정
# F3: 검색
# F4: 필터
# F5: 트리 보기
# F9: 프로세스 종료
# F10: 종료


kill 명령어


# 정상 종료 요청
kill PID
kill -15 PID # SIGTERM (기본값)

# 강제 종료
kill -9 PID # SIGKILL

# 프로세스 이름으로 종료
pkill java
pkill -9 tomcat

# 패턴으로 종료
pkill -f "java.*myapp"

# 모든 자식 프로세스 포함 종료
kill -9 -PID


시그널 종류








SIGTERM (15)정상 종료 요청
SIGKILL (9)강제 종료
SIGHUP (1)재시작
SIGSTOP (19)일시 정지
SIGCONT (18)재개


실용적인 활용


# 좀비 프로세스 찾기
ps aux | grep Z

# 포트 사용 프로세스 찾기
lsof -i :8080
netstat -tulnp | grep 8080

# 프로세스 메모리 확인
pmap -x PID

# 프로세스 열린 파일 확인
lsof -p PID

# 백그라운드 실행
nohup java -jar app.jar &

# 프로세스 개수 확인
ps aux | grep java | wc -l


자주 사용하는 조합


# Java 프로세스 확인 후 종료
ps aux | grep java
kill -9

# 특정 포트 사용 프로세스 종료
kill -9