본문 바로가기
C.W.K.
Stream
Lesson 01 of 10 · published

ps: 프로세스 나열

~10 min · ps, process

Level 0창 구경꾼
0 XP0/95 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

지금 실행 중인 프로세스 보기

ps는 프로세스 표를 한 시점에 찍어 보여 줘. BSD식 ps aux와 System V식 ps -ef처럼 옵션 관습이 둘 이상이고 운영체제마다 지원하는 열이 다를 수 있으니 그 머신의 도움말도 확인해.

자주 쓰는 조회 형태

  • ps aux: 모든 사용자의 프로세스와 전체 명령줄을 보여 줘.
  • ps -ef: 비슷한 정보를 System V식 옵션으로 보여 줘.
  • ps -p <pid>: 한 PID만 조회해.
  • ps aux | grep -i firefox | grep -v grep: 이름이 든 줄을 찾아.
  • ps -o pid,ppid,command: 필요한 열만 고르게 해.

진단할 때 보는 열

  • USER: 프로세스 소유자야.
  • PID: 프로세스 번호야.
  • %CPU%MEM: 순간 자원 사용률이야.
  • RSS: 메모리에 상주한 크기야.
  • STAT: 실행, 대기, zombie, 정지 같은 상태를 보여 줘.
  • COMMAND: 실행 파일과 인자야. 표시 폭에 따라 잘릴 수 있어.

pgrep와 pkill로 이름을 다루기

pgrep firefox는 이름이 맞는 PID를 출력해. pkill -f 'python myscript'는 전체 명령줄이 맞는 모든 프로세스에 신호를 보내므로 예상보다 넓게 잡힐 수 있어. 먼저 pgrep -af pattern으로 PID와 전체 명령을 확인한 뒤 정확한 대상을 선택해.

자원 수치는 원인이 아니라 단서야

%CPU%MEM은 관찰할 후보를 좁혀 줄 뿐 장애 원인을 판정하지 않아. 순간 급증은 정상일 수 있고 큰 RSS에는 회수 가능한 캐시가 포함될 수 있어. 시간차를 둔 관찰과 로그, 실제 작업량을 함께 봐.

PID는 영구적인 신원이 아니야

프로세스가 끝나면 운영체제는 같은 PID를 다른 프로세스에 다시 줄 수 있어. 오래된 PID를 근거로 신호를 보내기 전에 실행 파일, 시작 시각, 부모 PID를 다시 확인해. 장기 서비스는 서비스 매니저의 안정된 이름으로 제어하는 편이 안전해.

Code

폭주 프로세스 찾기·bash
ps aux | sort -nrk 3 | head -10           # CPU 사용량 상위 10개
ps aux | sort -nrk 4 | head -10           # 메모리 사용량 상위 10개
pgrep -fa python                          # PID와 전체 명령 표시

External links

Exercise

ps aux | sort -nrk 3 | head -5로 CPU 사용량이 큰 프로세스를 보고, pgrep -fa zsh로 현재 셸 후보를 찾아. ps -u $(whoami) -o pid,%cpu,command | head로 현재 사용자 범위만 볼 때 결과가 어떻게 달라지는지도 비교해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.