이번 주는 리눅스의 살아 움직이는 부분 — 프로세스와 그 생애, 시스템을 깨우는 초기화, 시간을 다루는 예약 — 을 다뤘다. Day 1에서 프로세스의 신원(PID/PPID)과 제어(시그널·우선순위)를, Day 2에서 그 한살이(데몬·fork/exec·좀비/고아)를, Day 3에서 시스템을 띄우는 init/systemd를, Day 4에서 시간을 자동화하는 cron/at을 배웠다. 오늘은 이 네 조각을 하나의 그림으로 잇고, 실기에서 자주 엮여 나오는 함정을 복습한 뒤 종합 문제로 점검한다.
핵심 통찰 하나만 가져가자: 리눅스의 동적 세계는 "프로세스 하나(PID 1)에서 출발해 트리로 자라고, 시그널로 대화하며, 시간표(cron)에 따라 일한다." PID 1번이 모든 것의 부모이자 초기화의 주인공이고, 데몬은 그 1번이 띄운 백그라운드 일꾼이며, cron 역시 crond라는 데몬일 뿐이다. 이 연결고리를 잡으면 4일치가 하나로 보인다.
| 도구 | 용도 | 핵심 포인트 |
|---|---|---|
ps aux | 전체 + 사용률 | 하이픈 없음, %CPU/%MEM |
ps -ef | 전체 + PPID | 하이픈 있음, 부모 추적 |
top/htop | 실시간 | top은 기본 탑재, htop은 설치 필요 |
pgrep/pstree | 이름 검색/트리 | grep 자기참조 회피, 계층 시각화 |