Linux 프로세스 이해하기
프로세스는 현재 시스템에서 실행 중인 프로그램을 의미합니다. 리눅스 커널이 이를 관리하며, 각 프로세스에는 **프로세스 ID (PID)**라는 고유한 번호가 할당됩니다. PID 는 일반적으로 새 프로세스가 생성될 때 순차적으로 할당됩니다.
기본 ps 명령어 사용법
실행 중인 프로세스를 간략하게 확인하려면 단순히 ps 명령어를 실행합니다. 이는 현재 터미널 세션과 관련된 프로세스의 빠른 스냅샷을 제공합니다.
$ ps
PID TTY STAT TIME CMD
41230 pts/4 Ss 00:00:00 bash
51224 pts/4 R+ 00:00:00 ps
이 출력은 몇 가지 주요 세부 정보를 보여줍니다:
- PID: 고유한 프로세스 ID.
- TTY: 프로세스를 제어하는 터미널.
- STAT: 프로세스의 현재 상태.
- TIME: 프로세스가 사용한 총 CPU 시간.
- CMD: 프로세스를 시작한 명령어.
BSD 스타일 옵션을 사용한 ps 탐색
ps 명령어는 매우 다재다능하며, 옵션은 여러 구문 스타일 (BSD, System V, GNU) 로 나뉩니다. 대시 (-) 를 사용하지 않는 BSD 스타일은 매우 일반적입니다. 널리 사용되는 조합은 ps aux입니다.
ps aux
이 옵션들의 의미는 다음과 같습니다:
- a: 모든 사용자의 모든 프로세스를 표시합니다.
- u: 상세하고 사용자 중심적인 형식을 제공합니다.
- x: 어떤 터미널에도 연결되지 않은 프로세스를 포함합니다. 이들은 종종 부팅 시 시작되어 TTY 열에
?가 표시되는 시스템 데몬입니다.
이 명령어는 USER, %CPU, %MEM, VSZ, RSS와 같은 추가 열이 있는 훨씬 풍부한 출력을 제공합니다. 여기서는 PID, STAT, COMMAND 에 중점을 두겠습니다.
Linux 에서 ps -ef 명령어 사용하기
또 다른 매우 인기 있는 구문은 System V 스타일입니다. 시스템 관리자들은 ps -ef 명령어를 자주 사용합니다. 이는 시스템에서 실행 중인 모든 것을 전체적으로 파악할 수 있는 강력한 방법입니다.
ps -ef
ps -ef linux 명령어는 모든 프로세스의 전체 목록을 제공합니다.
- -e: 시스템의 모든 프로세스를 선택합니다.
- -f: UID, PPID(부모 프로세스 ID), C(CPU 활용률), STIME(시작 시간) 과 같은 세부 정보를 포함하는 "전체 형식" 목록을 표시합니다.
많은 사용자가 명확하고 계층적인 보기와 상세한 정보 때문에 ps aux보다 ps -ef를 선호합니다. 리눅스 시스템에서 문제를 해결할 때, linux ps -ef를 실행하는 것은 문제를 진단하기 위한 첫 번째 단계 중 하나인 경우가 많습니다. 더 간단한 변형인 ps -e linux도 모든 프로세스를 나열하지만 덜 상세한 형식으로 표시합니다.
top 을 이용한 실시간 모니터링
ps가 스냅샷을 제공하는 반면, top 명령어는 시스템 프로세스의 실시간 동적 보기를 제공합니다. 이는 가장 많은 CPU 또는 메모리를 소비하는 프로세스를 식별하는 데 탁월한 도구입니다. 기본적으로 디스플레이는 몇 초마다 새로 고침됩니다.
top