dumb-init

https://github.com/Yelp/dumb-init



dumb-int是一个用C写的轻量级进程管理工具。类似于一个初始化系统,



它充当PID 1,并立即以子进程的形式允许您的命令,注意在接收到信号时正确处理和转发它们



dumb-init 解决上述两个问题:向子进程代理发送信号和接管子进程。



默认情况下,dumb-init 会向子进程的进程组发送其收到的信号。原因也很简单,前面已经提到过,像 bash 这样的应用,自己接收到信号之后,不会向子进程发送信号。当然,dumb-init 也可以通过设置环境变量DUMB_INIT_SETSID=0来控制只向它的直接子进程发送信号。



另外 dumb-init 也会接管失去父进程的进程,确保其能正常退出。

https://github.com/krallin/tini



为了防止容器中直接使用ENTRYPOINT或CMD指令启动命令或应用程序产生PID为1的进程无法处理传递信号给子进程或者无法接管孤儿进程,进而导致产生大量的僵尸进程。对于没有能力处理以上两个进程问题的PID进程,建议使用dumb-int或tini这种第三方工具来充当1号进程。



https://mp.weixin.qq.com/s/g6I9AoNMlo7Le1LubT_4og


Category docker