The final example from this article fails to work as intended. This is the code:
My environment is Fedora 24, and this is the output I should receive:
# ./ns_child_exec -p ./simple_init -v init: my PID is 1 init$ init: SIGCHLD handler: PID 3 terminated
# ps -C sleep -C simple_init PID TTY TIME CMD 9147 pts/8 00:00:00 simple_init # ./ns_run -f -n /proc/9147/ns/pid ./orphan Parent (PID=2) created child with PID 3 Parent (PID=2; PPID=0) terminating # Child (PID=3) now an orphan (parent PID=1) Child (PID=3) terminating
However, this is the output I receive:
# sudo ./ns_child_exec -p ./simple_init -v init: my PID is 1 init$
# sudo ps -C sleep -C simple_init PID TTY TIME CMD 2665 pts/2 00:00:00 simple_init # sudo ./ns_run -f -n /proc/2665/ns/pid ./orphan Parent (PID=2) created child with PID 3 Parent (PID=2; PPID=0) terminating # sudo ./ns_run -f -n /proc/2665/ns/pid ./orphan Parent (PID=4) created child with PID 5 Parent (PID=4; PPID=0) terminating # sudo ./ns_run -f -n /proc/2665/ns/pid ./orphan Parent (PID=6) created child with PID 7 Parent (PID=6; PPID=0) terminating # sudo ./ns_run -f -n /proc/2665/ns/pid ./orphan Parent (PID=8) created child with PID 9 Parent (PID=8; PPID=0) terminating
It's as if orphan
's child does nothing, and is never re-parented. However, running orphan
via simple_init
's shell (without ns_run
) works as expected.