diff options
Diffstat (limited to 'util-linux/unshare.c')
| -rw-r--r-- | util-linux/unshare.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/util-linux/unshare.c b/util-linux/unshare.c index a9f56f388..f58cdd93e 100644 --- a/util-linux/unshare.c +++ b/util-linux/unshare.c @@ -333,7 +333,14 @@ int unshare_main(int argc UNUSED_PARAM, char **argv) * that'll become PID 1 in this new namespace. */ if (opts & OPT_fork) { - xvfork_parent_waits_and_exits(); + pid_t pid = xvfork(); + if (pid > 0) { + /* Parent */ + int exit_status = wait_for_exitstatus(pid); + if (WIFSIGNALED(exit_status)) + kill_myself_with_sig(WTERMSIG(exit_status)); + return WEXITSTATUS(exit_status); + } /* Child continues */ } |
