시스템 프로세스 관리: ps
, top
, htop
1. ps
명령 — 프로세스에 대한 정적 보기
만약 Linux가 레스토랑이었다면, 프로세스는 주방의 셰프였을 거야. 이건 메모리에 존재하는 프로그램의 실행 가능한 인스턴스야. 커맨드 라인에서 애플리케이션을 실행하거나 파일을 실행하면 프로세스가 생성되고, 완료될 때까지 자신의 작업을 수행해.
프로그래밍 관점에서 보면, 프로세스는 Linux 커널에 의해 관리되고, 각각 고유한 식별자 — PID (Process ID)를 가지고 있어.
ps
(process status) 명령은 프로세스 목록을 보기 위한 기본 명령이야. 이 명령은 시스템의 현재 프로세스에 대한 정적 스냅샷(=현재 상태)을 보여줘. ps
를 사용하면 실행 중인 프로세스에 대한 정보를 얻을 수 있어: 그들의 ID, 소유자, 커맨드 라인, 사용된 리소스 등.
기본 문법
기본 명령은 다음과 같이 생겼어:
ps
이건 현재 터미널에서 실행 중인 프로세스를 보여줄 거야.
근데 이렇게는 너무 심심하지? 양념 좀 더해보자:
ps aux
여기서:
a
— 다른 사용자의 프로세스도 보여줘.u
— 좀 더 읽기 쉬운 포맷을 추가해.x
— 터미널에 연결되지 않은 프로세스도 포함시켜.
출력 예시:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 22556 1044 ? Ss 12:34 0:01 /sbin/init
student 2345 0.1 0.2 34567 2048 pts/0 S+ 12:35 0:02 bash
student 4567 0.3 0.5 56789 5144 pts/0 R+ 12:36 0:03 ps aux
- USER: 프로세스를 실행한 사용자.
- PID: 프로세스 식별자.
- %CPU: CPU 사용 비율.
- %MEM: 메모리 사용 비율.
- COMMAND: 프로세스를 호출한 명령.
고급 옵션
프로세스의 트리 구조를 살펴보자:
ps -ejH
이건 어떤 프로세스가 다른 프로세스의 '자식'인지 이해하는데 도움이 돼.
PID로 필터링:
ps -p 1234
여기서
1234
는 너의 PID. 지정된 프로세스만 출력해.전체 명령 라인과 함께 모든 프로세스를 출력:
ps -ef
2. top
명령 — 프로세스 실시간 모니터링
top
은 마치 프로세스를 위한 텔레비전 같은 거야. 프로세스가 실시간으로 어떻게 변화하는지 볼 수 있어. 서버를 실행하거나 컴퓨터가 갑자기 느려졌다면, top
이 최고의 친구가 되어줄 거야. 이걸로 어떤 프로세스가 CPU와 메모리를 가장 많이 사용하는지 한눈에 알아볼 수 있어.
사용 기본
터미널에 이렇게 입력해봐:
top
출력 예시:
- 상단 줄은 "시스템 부하"를 보여줘.
- 중간 부분은 작업에 대해 알려줘 (전체, 활성, 대기, 좀비).
- 하단 부분은 메모리에 대한 내용이야.
- 맨 아래 블록은 프로세스 목록이고, PID, USER, %CPU, COMMAND 같은 유용한 정보를 포함하고 있어.
top
에서 내비게이션
k
를 눌러서 프로세스를 종료할 수 있어. PID를 입력해.P
를 눌러서 프로세스를 CPU 사용량에 따라 정렬해.M
를 눌러서 메모리 사용량에 따라 정렬해.q
를 눌러서 나갈 수 있어.
3. htop
유틸리티 — 편리한 인터페이스
top
이 너무 "투박하다"고 느껴질 때, htop
으로 와봐. 이건 프로세스 모니터링을 위한 시각적 인터페이스야. 컬러도 있고, 마우스도 지원하고, 훨씬 사용자 친화적으로 설계되었어.
설치
만약 htop
이 설치되어 있지 않다면, 다음을 추가해:
sudo apt-get install htop # Debian 기반 배포판용
sudo yum install htop # RedHat 기반 배포판용
실행
htop
을 실행하려면, 그냥 다음을 입력해:
htop
인터페이스 예시:
htop
의 장점:
- 프로세스 목록 스크롤 가능.
- CPU, 메모리, swap의 컬러 강조 표시.
- 프로세스를 종료하는 편리한 키 (예:
F9
).
4. 실습 과제
문제 1: 가장 "욕심쟁이" 프로세스를 찾아라
top
이나htop
을 열어봐.- CPU 사용량 기준으로 프로세스를 정렬하고 해당 PID를 확인해.
문제 2: 프로세스를 종료해
kill
을 사용해서 프로세스를 "죽여봐":kill <PID>
문제 3: 프로세스 분석
ps
를 사용해서 PID 프로세스를 분석해봐:ps -p <PID> -o pid,user,%cpu,%mem,cmd
주의점과 추천사항
- 시스템 작동에 중요하지 않다는 확신이 없다면 프로세스를 죽이지 마. 예를 들어, PID 1번 프로세스는 OS의 핵심인 init 프로세스야.
htop
유틸리티는 별도로 설치해야 할 수도 있어. 명령어가 작동하지 않는다면 설치를 확인해봐.- 권한 문제에 주의해. 다른 사용자가 실행한 프로세스를 종료하려면 관리자 권한이 필요할 수 있어.
실제 사용해보면 이 도구들이 Linux 작업을 엄청 유연하고 직관적으로 만들어준다는 걸 알게 될 거야. 이제 너는 프로세스의 보스야!
GO TO FULL VERSION