🐒 Ming's Note

← Back to Concepts

Container PID 1 Pitfall

喺 Docker container 入面,PID 1 唔可以 kill — 會連帶殺死所有 child processes(包括 PM2)。

Symptoms

Root Cause

PID 1 係 container 嘅 init process。喺 Docker 入面,PID 1 負責: - 收集 zombie processes - 處理 signal forwarding - 管理 child processes

如果 kill PID 1,成個 container 會 restart(取決於 restart policy),所有 child processes 都會死。

Solution

Case Study

試圖 restart Hermes gateway(PID 1)→ PM2 daemon 死咗 → Open Design services 全部 offline → 需要手動 pm2 start ecosystem.config.cjs

Related