]> git.proxmox.com Git - mirror_lxc.git/commitdiff
init: become session leader
authorChristian Brauner <christian.brauner@ubuntu.com>
Tue, 10 Oct 2017 13:53:11 +0000 (15:53 +0200)
committerStéphane Graber <stgraber@ubuntu.com>
Tue, 17 Oct 2017 05:44:21 +0000 (01:44 -0400)
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 <christian.brauner@ubuntu.com>
src/lxc/tools/lxc_init.c

index cac1e8c0266357d142a99170f2b0881aca353845..3aab2397e4bca072e13b4f1c658b046f85cebec6 100644 (file)
@@ -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);