본문으로 건너뛰기
Linux · CLI 기초집LESSON 13

프로세스와 작업 관리: ps, top, htop, kill

난이도입문 → 초급
예상 시간30분
선수지식이전 강의

13강. 프로세스와 작업 관리: ps, top, htop, kill

1. 이번 강의에서 해결할 문제

프로그램이 멈췄을 때 이름이 비슷한 프로세스를 강제 종료하면 다른 작업의 데이터가 손상될 수 있습니다. PID와 실행 명령을 확인하고 정상 종료 신호부터 사용합니다.

2. 학습 목표

3. 핵심 개념

프로세스는 실행 중인 프로그램 인스턴스이고 PID로 식별됩니다. 셸의 &, jobs, fg, bg는 현재 셸이 시작한 작업을 관리합니다. kill PID는 기본적으로 정상 종료 기회를 주는 SIGTERM을 보냅니다. SIGKILL(kill -9)은 정리 코드를 실행할 기회가 없으므로 마지막 수단이며 이 과정에서는 실행하지 않습니다.

4. 단계별 명령어와 예시

1. Ubuntu Bash(WSL)

실행 위치: 프로젝트 루트

대상: 직접 시작하는 60초 테스트 프로세스

Ubuntu Bash(WSL)
cd "$HOME/projects/game-log-analyzer"
sleep 60 &
test_pid=$!
printf "test pid=%s\n" "$test_pid"
jobs -l
ps -p "$test_pid" -o pid,ppid,stat,etime,cmd
kill "$test_pid"
wait "$test_pid" 2>/dev/null || true
ps -p "$test_pid" -o pid,stat,cmd

예상 결과: 테스트 PID가 먼저 표시되고 TERM 뒤 마지막 조회에는 프로세스가 남지 않습니다.

2. Ubuntu Bash(WSL)

실행 위치: 어느 디렉터리에서나 가능

대상: 현재 사용자 프로세스 관찰

Ubuntu Bash(WSL)
ps -u "$USER" -o pid,stat,%cpu,%mem,cmd | head
top -b -n 1 | head -n 12

예상 결과: 현재 사용자의 프로세스와 한 번의 시스템 상태 스냅샷이 표시됩니다.

5. 명령어가 동작하는 이유

$!는 현재 셸이 마지막으로 백그라운드 실행한 PID이므로 이름 검색보다 대상이 명확합니다. TERM 신호를 받은 프로세스는 정리 후 종료할 수 있고 wait는 셸이 종료 상태를 회수하게 합니다.

6. 자주 하는 실수와 안전한 해결법

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

프로세스와 작업 관리: ps, top, htop, kill 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“프로세스와 작업 관리: ps, top, htop, kill” 실습 결과를 해석하는 올바른 기준은 무엇인가요?
  2. 문제 2‘pkill python처럼 넓은 이름으로 종료’ 상태에 관한 “프로세스와 작업 관리: ps, top, htop, kill” 본문의 설명으로 가장 알맞은 것은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

13강. 프로세스와 작업 관리: ps, top, htop, kill 미완료 상태