| 问题 | PID 1 忽略未显式处理的信号;僵尸进程无人回收 |
|---|---|
| 表现 | docker stop 后进程不退,10 秒后收到 SIGKILL(退出码 137) |
| 方案 A | 应用直接作为 PID 1 并自行处理 SIGTERM(exec 形式启动) |
| 方案 B | docker run --init 注入 tini:转发信号+回收僵尸 |
| 调优 | docker stop -t 30 延长优雅停止窗口 |
使用示例
使用示例
docker run -d --init --name app -t 30 myapp:1.0
docker stop appshell 脚本入口必须以 exec "$@" 结尾让应用接管 PID 1,否则信号永远停在脚本层。