ee3ac3aa66
This adds a small C binary for fighting zombies. It is mounted under `/dev/init` and is prepended to the args specified by the user. You enable it via a daemon flag, `dockerd --init`, as it is disable by default for backwards compat. You can also override the daemon option or specify this on a per container basis with `docker run --init=true|false`. You can test this by running a process like this as the pid 1 in a container and see the extra zombie that appears in the container as it is running. ```c int main(int argc, char ** argv) { pid_t pid = fork(); if (pid == 0) { pid = fork(); if (pid == 0) { exit(0); } sleep(3); exit(0); } printf("got pid %d and exited\n", pid); sleep(20); } ``` Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
16 lines
515 B
Bash
16 lines
515 B
Bash
#!/bin/bash
|
|
|
|
set -e
|
|
rm -rf "$DEST"
|
|
|
|
(
|
|
DEST="$(dirname $DEST)/binary-daemon"
|
|
source "${MAKEDIR}/.binary-setup"
|
|
install_binary "${DEST}/${DOCKER_DAEMON_BINARY_NAME}"
|
|
install_binary "${DEST}/${DOCKER_RUNC_BINARY_NAME}"
|
|
install_binary "${DEST}/${DOCKER_CONTAINERD_BINARY_NAME}"
|
|
install_binary "${DEST}/${DOCKER_CONTAINERD_CTR_BINARY_NAME}"
|
|
install_binary "${DEST}/${DOCKER_CONTAINERD_SHIM_BINARY_NAME}"
|
|
install_binary "${DEST}/${DOCKER_PROXY_BINARY_NAME}"
|
|
install_binary "${DEST}/${DOCKER_INIT_BINARY_NAME}"
|
|
)
|