본문 바로가기

Server/Linux

Linux 프로세스 관련 명령어

ps : 프로세스 관리 및 모니터링

ps는 시스템의 현재 실행 중인 프로세스를 조회하는 명령어로, grep, awk 등과 결합하여 특정 프로세스나 조건에 맞는 프로세스를 필터링할 때 사용된다.

 

1. 특정 프로세스 검색: ps -ef | grep "프로세스명"

$ ps -ef | grep "apache"

 

apache와 관련된 모든 프로세스를 확인하여 CPU 점유율이 높은 프로세스나 비정상적으로 실행 중인 프로세스를 탐지

 

2. 상위 CPU 사용량 프로세스 추출

$ ps aux --sort=-%cpu | head -n 5

시스템 리소스를 과도하게 사용하는 상위 5개의 프로세스를 추출

 

3. PPID가 1인 프로세스(시스템에서 직접 실행된 프로세스)만을 출력

ps -ef | awk '$3 == 1'

awk를 사용하여 특정 부모 프로세스 하위의 프로세스만 필터링할 수 있다

 

4. 실행 시간 순서대로 정렬

ps -ef --sort=start_time

프로세스의 시작 시간에 따라 정렬하여 오래된 프로세스부터 확인

 

5. 메모리 사용률 높은 순으로 정렬

ps -ef --sort=-%mem | head -n 10

메모리 사용률이 높은 상위 10개의 프로세스를 출력

 

6. PID로 특정 프로세스 조회::  ps -ef | awk '$2 == PID'

ps -ef | awk '$2 == 1234'

 

7. 1시간 이상 실행 중인 프로세스 검색

ps -eo pid,etime,cmd | awk '$2 ~ /[0-9]+:[0-9]{2}:[0-9]{2}/'

순서대로 PID, 프로세스가 실행된 후 경과한 시간 (일:시:분:초), cmd또는 프로세스명

 

8. 특정 시간대에 시작된 프로세스 확인

ps -eo pid,stime,cmd | grep "10:00"

stime 필드를 사용하여 10:00에 시작된 프로세스를 조회