소개
이 랩에서는 프로세스를 관리하고 모니터링하기 위한 기본적인 Linux 기술을 배우게 됩니다. ps aux 명령어를 사용하여 시스템에서 실행 중인 모든 프로세스를 나열하는 방법을 탐구할 것입니다. 이 명령어는 사용자, PID, CPU 및 메모리 사용량과 같은 자세한 정보를 포함하는 현재 프로세스의 스냅샷을 제공합니다.
또한, pgrep 명령어를 사용하여 특정 프로세스를 효율적으로 찾는 방법을 배우고, top 명령어를 활용하여 실시간 프로세스 활동 및 리소스 소비에 대한 통찰력을 얻을 것입니다. 이러한 기술은 시스템 관리, 문제 해결 및 시스템 성능 이해에 필수적입니다.
ps aux 로 실행 중인 프로세스 목록 확인
이 단계에서는 ps 명령어를 사용하여 Linux 시스템에서 현재 실행 중인 프로세스를 보는 방법을 배우게 됩니다. 프로세스는 단순히 실행 중인 프로그램입니다. 프로세스를 나열하고 식별하는 방법을 이해하는 것은 Linux 시스템 관리 및 문제 해결의 기본적인 기술입니다.
ps 명령어는 현재 프로세스의 스냅샷을 보고하는 데 사용됩니다. 특정 옵션과 함께 사용하면 많은 자세한 정보를 제공할 수 있습니다.
ps 명령어를 aux 옵션과 함께 사용해 보겠습니다. 이러한 옵션은 시스템에서 실행 중인 모든 프로세스를 사용자 친화적인 형식으로 표시하기 위해 일반적으로 함께 사용됩니다.
a: 모든 프로세스를 표시합니다.u: 프로세스의 사용자 및 소유자를 표시합니다.x: 제어 터미널이 없는 프로세스를 표시합니다 (백그라운드 프로세스를 확인하는 데 유용합니다).
터미널이 아직 열려 있지 않다면 열어주세요. 기본적으로 ~/project 디렉토리에 있어야 합니다.
다음 명령을 입력하고 Enter 키를 누르세요:
ps aux
다음과 유사한 긴 프로세스 목록이 표시됩니다 (정확한 출력은 다를 수 있습니다):
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 16840 9880 ? Ss Jul23 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S Jul23 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< Jul23 0:00 [rcu_gp]
...
labex 12345 0.1 0.5 123456 54321 pts/0 Ss HH:MM 0:00 /usr/bin/zsh
labex 12367 0.0 0.1 21000 5000 pts/0 R+ HH:MM 0:00 ps aux
...
표시되는 열을 자세히 살펴보겠습니다:
USER: 프로세스를 소유한 사용자.PID: 프로세스 ID (Process ID), 각 실행 중인 프로세스에 대한 고유 번호.%CPU: 프로세스가 사용하는 CPU 시간의 백분율.%MEM: 프로세스가 사용하는 물리적 메모리의 백분율.VSZ: 가상 집합 크기 (Virtual Set Size), 프로세스에서 사용하는 총 가상 메모리 양.RSS: 상주 집합 크기 (Resident Set Size), 프로세스에서 사용하는 물리적 메모리 양.TTY: 프로세스에 대한 제어 터미널 (있는 경우).?는 제어 터미널이 없음을 의미합니다.STAT: 프로세스 상태 (예: 실행 중인R, 대기 중인S, 좀비Z).START: 프로세스가 시작된 시간.TIME: 프로세스가 사용한 누적 CPU 시간.COMMAND: 프로세스를 시작한 명령어.
이 출력을 스크롤하는 것은 압도적일 수 있습니다. 다음 단계에서는 이 출력을 필터링하여 특정 프로세스를 찾는 방법을 배우게 됩니다.
계속을 클릭하여 진행하세요.
pgrep 을 사용하여 특정 프로세스 찾기
이전 단계에서 ps aux가 많은 출력을 생성할 수 있다는 것을 보았습니다. 종종 특정 프로세스만 찾고 싶을 것입니다. pgrep 명령어는 이러한 목적으로 설계되었습니다. 프로세스 이름을 기반으로 프로세스를 검색하고 해당 프로세스 ID (PID) 를 반환합니다.
pgrep의 기본 구문은 pgrep [options] pattern입니다. pattern은 일반적으로 찾고 있는 프로세스의 이름입니다.
터미널에서 현재 사용하고 있는 쉘인 zsh 프로세스의 PID 를 찾아보겠습니다.
다음 명령을 입력하고 Enter 키를 누르세요:
pgrep zsh
터미널에 하나 이상의 숫자가 출력되는 것을 볼 수 있습니다. 이것은 실행 중인 zsh 프로세스의 PID 입니다.
12345
(정확한 숫자는 다를 것입니다).
pgrep에서 찾은 PID 와 관련된 전체 명령을 보려면 ps 명령어와 결합할 수 있습니다. ps의 -p 옵션을 사용하면 PID 를 지정할 수 있습니다.
zsh 프로세스의 전체 명령을 PID 를 사용하여 찾아보겠습니다. 먼저, 현재 PID 를 얻기 위해 pgrep zsh를 다시 실행합니다. 이 예에서는 PID 가 12345라고 가정합니다 (실제로 얻은 PID 로 12345를 바꾸세요).
이제 PID 다음에 ps -p를 사용합니다:
ps -p 12345
다음과 유사한 출력을 볼 수 있습니다:
PID TTY TIME CMD
12345 pts/0 00:00:00 zsh
이는 PID 12345가 zsh 명령에 해당함을 확인합니다.
pgrep은 프로세스 이름을 알고 있을 때 해당 프로세스의 PID 를 찾는 빠른 방법입니다. 이는 프로세스를 종료하는 것과 같은 다른 명령에 PID 가 필요할 때 특히 유용합니다 (향후 랩에서 배우게 됩니다).
다음 단계로 이동하려면 계속을 클릭하세요.
top 명령어로 프로세스 상세 정보 모니터링
이 단계에서는 시스템에서 실행 중인 프로세스의 동적이고 실시간 보기를 제공하는 top 명령어에 대해 배우게 됩니다. ps aux가 스냅샷을 제공하는 반면, top은 지속적으로 업데이트되어 어떤 프로세스가 가장 많은 CPU 와 메모리를 사용하고 있는지 보여줍니다.
top 명령어는 시스템 성능을 모니터링하고 과도한 리소스를 소비할 수 있는 프로세스를 식별하는 데 매우 유용합니다.
터미널에 다음 명령을 입력하고 Enter 키를 누르세요:
top
터미널이 변경되어 끊임없이 업데이트되는 프로세스 목록을 표시합니다. 출력은 다음과 유사합니다:
top - HH:MM:SS up X days, HH:MM, X users, load average: X.XX, X.XX, X.XX
Tasks: XXX total, X running, XXX sleeping, X stopped, X zombie
%Cpu(s): X.X us, X.X sy, X.X ni, XX.X id, X.X wa, X.X hi, X.X si, X.X st
MiB Mem : XXXX.X total, XXXX.X free, XXXX.X used, XXX.X buff/cache
MiB Swap: XXXX.X total, XXXX.X free, XXXX.X used. XXXX.X avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12345 labex 20 0 123456 54321 32100 S 0.1 0.5 0:00.10 zsh
12367 labex 20 0 21000 5000 3000 R 0.0 0.1 0:00.05 top
...
top 출력의 주요 영역을 살펴보겠습니다:
요약 영역 (Top): 이 섹션은 다음을 포함한 시스템 요약 정보를 표시합니다.
- 현재 시간 및 시스템 가동 시간.
- 로그인한 사용자 수.
- 부하 평균 (지난 1, 5, 15 분 동안 실행을 대기 중인 프로세스의 평균 수).
- 총 작업 수 (프로세스) 및 해당 상태 (실행 중, 대기 중, 중지됨, 좀비).
- CPU 사용량 분석 (사용자, 시스템, 유휴 등).
- 메모리 사용량 (총, 사용 가능, 사용 중, 버퍼/캐시).
- 스왑 공간 사용량.
프로세스 목록 영역 (Bottom): 이 섹션은 CPU 사용량별로 기본적으로 정렬된 개별 프로세스를 나열합니다. 열은
ps aux와 유사하지만top은 실시간으로 업데이트합니다. 주요 열은 다음과 같습니다:PID: 프로세스 ID.USER: 프로세스 소유자.%CPU: CPU 사용량 백분율.%MEM: 메모리 사용량 백분율.COMMAND: 명령 이름.
top이 실행되는 동안 다양한 키를 사용하여 상호 작용할 수 있습니다:
q를 눌러top을 종료합니다.M을 눌러 메모리 사용량별로 프로세스 목록을 정렬합니다.P를 눌러 CPU 사용량별로 프로세스 목록을 정렬합니다 (이것이 기본값입니다).k를 눌러 프로세스를 종료합니다 (PID 를 묻는 메시지가 표시됩니다). 주의하세요!
잠시 프로세스를 관찰하고 CPU 및 메모리 사용량이 어떻게 변경되는지 살펴보세요. 디스플레이를 업데이트하기 위해 CPU 를 적극적으로 사용하고 있기 때문에 top 프로세스 자체가 목록 상단 근처에 표시되는 것을 볼 수 있습니다.
top 탐색을 마치면 q를 눌러 종료하고 일반 터미널 프롬프트로 돌아갑니다.
이 단계를 완료하고 랩을 완료하려면 계속을 클릭하세요.
요약
이 랩에서는 Linux 에서 프로세스가 실행 중인지 확인하는 기본적인 기술을 배웠습니다. 시스템에서 실행 중인 모든 프로세스를 나열하기 위해 ps aux 명령을 사용하여 시작했으며, 프로세스 활동의 스냅샷을 제공하는 USER, PID, %CPU 및 %MEM 과 같은 다양한 열을 이해했습니다.
그런 다음 이름 또는 기타 속성을 기반으로 프로세스를 검색하고 해당 프로세스 ID (PID) 를 반환하는 pgrep 명령을 사용하여 특정 프로세스를 효율적으로 찾는 방법을 탐구했습니다. 마지막으로, 시스템 리소스 사용량 및 개별 프로세스 통계의 동적 보기를 제공하여 CPU 및 메모리 소비를 관찰할 수 있는 top 명령을 사용하여 실시간으로 프로세스 세부 정보를 모니터링하는 방법을 배웠습니다.



