top, ps aux, kill
서버나 리눅스 환경을 다루다 보면 어느 순간은 꼭 프로세스를 직접 관리해야 할 일이 생깁니다.
CPU 사용률이 갑자기 치솟거나, 프로그램이 멈춘 것처럼 보일 때, 대체 어떤 프로세스가 문제인지 확인하고 정리해주는 게 중요해요.
오늘은 리눅스에서 가장 많이 쓰이는 세 가지 명령어인 top, ps aux, kill 을 활용해서 프로세스를 모니터링하고 종료하는 방법 을 하나씩 알려드릴게요.
먼저 top 명령어는 리눅스 시스템에서 실행 중인 프로세스를 실시간으로 보여주는 도구입니다. 터미널에 다음처럼 입력해보세요.
top
실행하면 현재 시스템에서 어떤 프로세스가 실행 중인지, CPU와 메모리를 얼마나 쓰고 있는지, 누가 실행했는지 한눈에 나와요.
q: top 종료
P: CPU 사용률 순으로 정렬
M: 메모리 사용량 순 정렬
k: 특정 PID 종료 (kill과 연결됨)
1: CPU 코어별 사용량 보기
top은 한 번에 상태를 파악하고 싶을 때 정말 유용해요. 갑자기 팬이 시끄럽게 돌거나 서버가 버벅일 때, 가장 먼저 실행해보는 명령어죠.
top이 실시간이라면, ps aux는 스냅샷처럼 현재 상태를 한 번에 찍어 보여주는 명령어예요.
ps aux
이 명령어는 사용자, CPU/메모리 사용량, 시작 시간, 명령어까지 전부 출력해줘요. 출력된 항목 중 주요한 건 다음과 같아요.
USER: 프로세스를 실행한 사용자
PID: 프로세스 ID
%CPU / %MEM: 각각 CPU와 메모리 사용량
COMMAND: 어떤 명령으로 실행됐는지
예를 들어 웹서버나 특정 스크립트가 제대로 작동 중인지 확인할 때 아주 좋아요.
ps aux | grep [프로세스명]
예:
ps aux | grep nginx
이렇게 하면 nginx 관련 프로세스만 쏙 뽑아볼 수 있어요.
이제 원인을 찾았다면, 다음은 문제 프로세스를 종료하는 작업입니다.
kill 명령어는 그 이름 그대로, 프로세스를 죽이는 명령이에요.
kill [PID]
예를 들어, ps aux나 top에서 찾은 PID가 1234라면,
kill 1234
이렇게 입력하면 해당 프로세스에 기본 종료 신호(SIGTERM)를 보내요. 보통은 이걸로 깔끔하게 종료되는데, 안 될 때도 있어요.
kill -9 [PID] -9
옵션은 SIGKILL 신호로, 말 그대로 강제로 프로세스를 멈춰버려요. 종료 요청을 무시하는 좀비 프로세스나 멈춘 앱은 이렇게 처리하면 됩니다.
top 명령어로 CPU 사용률이 높은 프로세스 확인
PID 확인 후 ps aux | grep [PID]로 어떤 프로그램인지 점검
필요 시 kill [PID] 또는 kill -9 [PID]로 종료
이 세 단계를 익히면, 갑자기 서버가 멈춘 것 같을 때도 당황하지 않고 대처할 수 있어요.
htop: top을 좀 더 보기 쉽게 만든 대체 도구 (색상지원, 마우스 조작 가능)
pkill: 프로세스 이름으로 종료할 수 있어요 (예: pkill chrome)
killall: 같은 이름의 여러 프로세스를 한 번에 종료 (예: killall python3)
리눅스에서 프로세스 관리는 어렵지 않아요. top으로 전체 상황을 보고, ps aux로 세부 확인하고, kill
로 정리까지! 이 세 가지 명령어만 알아두면 급할 때도 침착하게 대응할 수 있습니다.
서버나 리눅스 시스템을 처음 접하더라도, 이런 기본 명령어는 꼭 한 번 손에 익혀두는 걸 추천드려요. 직접 몇 번 써보면 금방 익숙해질 거예요.