Unverified Commit 79d5bcf1 by Christian Brauner Committed by Stéphane Graber

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: 's avatarChristian Brauner <christian.brauner@ubuntu.com>
parent 25af2ac7
...@@ -77,7 +77,7 @@ static void usage(void) { ...@@ -77,7 +77,7 @@ static void usage(void) {
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
pid_t pid; pid_t pid, sid;
int err; int err;
char **aargv; char **aargv;
sigset_t mask, omask; sigset_t mask, omask;
...@@ -189,6 +189,10 @@ int main(int argc, char *argv[]) ...@@ -189,6 +189,10 @@ int main(int argc, char *argv[])
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
sid = setsid();
if (sid < 0)
DEBUG("Failed to make child session leader");
NOTICE("About to exec '%s'", aargv[0]); NOTICE("About to exec '%s'", aargv[0]);
ret = execvp(aargv[0], aargv); ret = execvp(aargv[0], aargv);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment