리눅스 프로세스 명령어(ps/top/htop/kill)
리눅스를 사용하다 보면 현재 시스템에서 어떤 프로그램이 실행되고 있는지 확인해야 할 때가 있다. 특히 서버를 운영하거나 개발 환경에서 작업을 하다 보면 CPU 사용량이 갑자기 높아지거나, 특정 프로그램이 과도하게 메모리를 사용하는 상황을 자주 마주하게 된다.
이럴 때 필요한 것이 바로 프로세스 확인 명령어다. 리눅스에서는 실행 중인 프로그램을 프로세스(Process) 라고 부르며, 이를 확인하고 관리할 수 있는 다양한 명령어를 제공한다.
이번 글에서는 리눅스에서 가장 많이 사용하는 프로세스 관련 명령어인 ps/top/htop/kill에 대해 알아보도록 하겠다.
프로세스란 무엇인가
프로세스는 쉽게 말해 현재 실행 중인 프로그램이다.
예를 들어 다음과 같은 프로그램들은 모두 프로세스 형태로 동작한다.
- 웹 서버 (nginx, apache)
- 데이터베이스 (mysql, postgres)
- SSH 서버
- 사용자가 실행한 프로그램
리눅스에서는 이런 프로세스들을 확인하고 관리하기 위해 여러 명령어를 제공한다. 프로세스 관련하여 대표적으로 많이 사용하는 것이 바로 다음 네 가지다.
- ps
- top
- htop
- kill
ps 명령어
ps 명령어는 현재 실행 중인 프로세스를 확인하는 가장 기본적인 명령어다. 가장 많이 사용하는 형태는 다음과 같다.
ps aux
실행 결과는 보통 다음과 같이 나온다.
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME. COMMAND
root 1 0.0 0.1 225984 9388 ? Ss 10:00 0:02. /sbin/init
ubuntu 1234 0.3 1.2 455632 24532 ? S 10:10 0:05. nginx
각 항목의 의미는 다음과 같다.
| 항목 | 의미 |
|---|---|
| USER | 프로세스를 실행한 사용자 |
| PID | 프로세스 ID |
| %CPU | CPU 사용률 |
| %MEM | 메모리 사용률 |
| COMMAND | 실행된 명령어 |
특히 PID(Process ID) 는 나중에 프로세스를 종료할 때 사용된다. 잘 기억해 두자.
ps 응용편-특정 프로세스 찾기
실무에서는 특정 프로세스를 찾기 위해 grep과 함께 사용하는 경우가 많다. 예를 들어 nginx 프로세스를 찾고 싶다면 다음과 같이 입력한다.
ps aux | grep nginx
이 명령어는 실행 중인 프로세스 목록에서 nginx가 포함된 항목만 필터링해서 보여준다.
top 명령어
top 명령어는 실시간으로 시스템 상태를 확인할 수 있는 명령어다. 다음과 같이 실행할 수 있다.
top
실행하면 다음과 같은 정보를 확인할 수 있다.
CPU 사용률
메모리 사용량
실행 중인 프로세스 목록
시스템 부하(load average)
특히 CPU나 메모리를 많이 사용하는 프로세스를 확인할 때 매우 유용하다. top 화면에서 사용할 수 있는 주요 단축키는 다음과 같다.
| 단축키 | 항목 |
|---|---|
| P | CPU 사용량 기준 정렬 |
| M | 메모리 사용량 기준 정렬 |
| k | 프로세스 종료 |
| q | 종료 |
htop 명령어
htop은 top 명령어보다 좀 더 직관적인 인터페이스를 제공하는 도구다. 다만 기본적으로 설치되어 있지 않은 경우가 많기 때문에 먼저 설치해야 한다.
Ubuntu 기준 설치 방법
sudo apt install htop
위 명령어를 통해 설치가 완료 된 후 아래 명령어로 실행하면 된다.
htop
htop의 특징은 다음과 같다.
색상이 적용된 UI
마우스 사용 가능
프로세스 트리 구조 확인
CPU / 메모리 사용량 직관적 표시
위와 같은 특징으로 top보다 보기 편하기 때문에 많은 개발자들이 htop을 선호한다. 필자도 htop을 더 선호하는 편이다.
kill 명령어-프로세스 종료하기
문제가 되는 프로세스를 종료할 때는 kill 명령어를 사용한다. 예를 들어 PID가 1234인 프로세스를 종료하려면 다음과 같이 입력한다.
kill 1234
만약 정상적으로 종료되지 않는다면 다음 명령어를 사용할 수도 있다. 위 명령어가 단순 프로세스 종료라면 아래 명령어는 강제 종료에 해당하는 명령어다.
kill -9 1234
다만 늘 그렇듯 강제 종료는 예상치 못한 문제가 발생할 수 있기 때문에 주의해서 사용하는 것이 좋다.
정리
리눅스에서 시스템 상태를 확인하거나 서버를 관리할 때 프로세스 확인은 매우 중요한 작업이다.
이번 글에서 소개한 명령어를 정리하면 다음과 같다.
| 명령어 | 용도 |
|---|---|
| ps | 실행 중인 프로세스 목록 확인 |
| top | 실시간 시스템 상태 확인 |
| htop | 개선된 프로세스 관리 도구 |
| kill | 프로세스 종료 처리 |
리눅스를 사용하다 보면 CPU 사용량이 갑자기 높아지거나 서버가 느려지는 상황을 겪게 된다.
이럴 때 ps와 top 명령어만 제대로 알고 있어도 문제 원인을 빠르게 파악할 수 있다.
다음 글에서는 리눅스 네트워크 상태를 확인하는 명령어(netstat / ss) 에 대해 알아보도록 하자.
Add your first comment to this post