C.W.K.
Stream
Lesson 10 of 10 · published

시그널 심화와 watch

~10 min · signal, trap, watch

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

제일 중요한 시그널

  • SIGTERM (15) — '종료해'. kill default.
  • SIGINT (2) — 'Ctrl+C 눌림'.
  • SIGHUP (1) — '터미널 닫힘' 또는 관례상 'config reload'.
  • SIGKILL (9) — '즉시 사망'. 못 잡음.
  • SIGSTOP (17) / SIGCONT (19) — 멈춤 / 재개. Ctrl+Z + fg 와 유사.
  • SIGUSR1 / SIGUSR2 — 앱 정의. nginx 가 USR1 로 로그 rotation, Postgres 가 USR1 로 crash recovery.
  • SIGPIPE (13) — '쓰던 파이프가 닫힘'. 파이프 중간에 command 가 죽는 원인.

스크립트에서 시그널 잡기 — trap

trap 'echo "caught Ctrl+C"; cleanup; exit 130' INT
trap 'rm -f /tmp/lock' EXIT
trap '' HUP            # 이 스크립트는 SIGHUP 무시

EXIT 트랩이 cleanup 의 표준 패턴 — 어떻게 끝나든 실행. scripting 트랙에서 더 깊이.

watch — command 반복

watch -n 1 'ls -lah | head' 가 1 초마다 재실행 + 최신 출력 + 변경 강조. 큐 크기, 로그 줄 수, 파일 성장 모니터링에 완벽. macOS 는 watch 기본 없음 — brew install watch.

watch flag

  • -n 5 — 인터벌 (초).
  • -d — 직전 출력과의 차이 강조.
  • -c — 출력의 ANSI 색 해석.
  • -x — shell 거치지 않고 직접 실행 (인용 케이스).

MVP 모니터

watch -n 2 -d 'ls -lh /var/log/build.log'

긴 빌드 중에 돌리기. 크기 / 타임스탬프 변화 — tail -f 로 화면 채우지 않고 살아 있는지 확인.

Code

trap 패턴·bash
#!/usr/bin/env bash
set -euo pipefail
lock=/tmp/myjob.lock
trap 'rm -f "$lock"' EXIT INT TERM
echo $$ > "$lock"
# do work
sleep 30

External links

Exercise

EXIT trap 으로 'cleanup' 을 echo 하는 작은 스크립트. 실행. 다시 실행 후 중간에 Ctrl+C — cleanup 도 도는 거 확인. brew install watch; watch -n 2 -d 'ls -lh /tmp/'.

Progress

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

댓글 0

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

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