Lập trình 22/09/2026 10 phút

Tín hiệu và PID 1 đo thật: app làm PID 1 không bắt SIGTERM thì docker stop chờ hết timeout rồi SIGKILL (exit 137), bắt SIGTERM thì thoát sạch exit 0, cháu mồ côi reparent về PID 1 cẩu thả tích tụ 20 zombie còn --init cho tini thu dọn về 0

Tiến trình đầu tiên trong container mang PID 1 và được kernel đối xử đặc biệt: bỏ qua tín hiệu có hành vi mặc định nếu không cài handler. Đo bằng docker stop và exit code: app làm PID 1 không bắt SIGTERM bị chờ hết timeout rồi SIGKILL (exit 137, 5,1 giây), có handler thì thoát sạch exit 0 trong 0,1 giây, chạy --init thì tini chuyển tín hiệu và app ở PID 2 chết ngay (exit 143). Zombie: fork 20 con không wait() để lại 20 tiến trình state Z; cháu mồ côi reparent về PID 1 cẩu thả tích tụ 20 zombie, còn --init cho tini thu dọn về 0.