From f6d9b7d50ea6919631cf061014600bab357e9488 Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Tue, 10 Oct 2017 15:53:11 +0200 Subject: [PATCH] init: become session leader Before exec()ing we need to become session leader otherwise some shells will not be able to correctly initialize job control. Signed-off-by: Christian Brauner --- src/lxc/tools/lxc_init.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lxc/tools/lxc_init.c b/src/lxc/tools/lxc_init.c index cac1e8c02..3aab2397e 100644 --- a/src/lxc/tools/lxc_init.c +++ b/src/lxc/tools/lxc_init.c @@ -77,7 +77,7 @@ static void usage(void) { int main(int argc, char *argv[]) { - pid_t pid; + pid_t pid, sid; int err; char **aargv; sigset_t mask, omask; @@ -189,6 +189,10 @@ int main(int argc, char *argv[]) exit(EXIT_FAILURE); } + sid = setsid(); + if (sid < 0) + DEBUG("Failed to make child session leader"); + NOTICE("About to exec '%s'", aargv[0]); ret = execvp(aargv[0], aargv); -- 2.39.5