父进程在创建完子进程之后就不管了,这就是造成子进程变成僵尸进程的原因。父进程要在子进程退出时进行wait()或waitpid()的调用,子进程才能顺利退出。当如果容器启动命令使用Bash之类进程的话,在主进程退出,由bash进程接管子进程的场景中就容易造成僵尸进程。所以容器服务的启动命令不建议使用bash、sh等命令,应使用tini(https://github.com/krallin/tini)等作为1号进程。
父进程在创建完子进程之后就不管了,这就是造成子进程变成僵尸进程的原因。父进程要在子进程退出时进行wait()或waitpid()的调用,子进程才能顺利退出。当如果容器启动命令使用Bash之类进程的话,在主进程退出,由bash进程接管子进程的场景中就容易造成僵尸进程。所以容器服务的启动命令不建议使用bash、sh等命令,应使用tini(https://github.com/krallin/tini)等作为1号进程。