|
|
@ -542,6 +542,7 @@ static void |
|
|
|
launch_compositor(struct weston_launch *wl, int argc, char *argv[]) |
|
|
|
launch_compositor(struct weston_launch *wl, int argc, char *argv[]) |
|
|
|
{ |
|
|
|
{ |
|
|
|
char *child_argv[MAX_ARGV_SIZE]; |
|
|
|
char *child_argv[MAX_ARGV_SIZE]; |
|
|
|
|
|
|
|
sigset_t allsigs; |
|
|
|
int i; |
|
|
|
int i; |
|
|
|
|
|
|
|
|
|
|
|
if (wl->verbose) |
|
|
|
if (wl->verbose) |
|
|
@ -556,6 +557,13 @@ launch_compositor(struct weston_launch *wl, int argc, char *argv[]) |
|
|
|
|
|
|
|
|
|
|
|
unsetenv("DISPLAY"); |
|
|
|
unsetenv("DISPLAY"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Do not give our signal mask to the new process. */ |
|
|
|
|
|
|
|
sigemptyset(&mask); |
|
|
|
|
|
|
|
sigaddset(&mask, SIGTERM); |
|
|
|
|
|
|
|
sigaddset(&mask, SIGCHLD); |
|
|
|
|
|
|
|
sigaddset(&mask, SIGINT); |
|
|
|
|
|
|
|
sigprocmask(SIG_UNBLOCK, &mask, NULL); |
|
|
|
|
|
|
|
|
|
|
|
child_argv[0] = wl->pw->pw_shell; |
|
|
|
child_argv[0] = wl->pw->pw_shell; |
|
|
|
child_argv[1] = "-l"; |
|
|
|
child_argv[1] = "-l"; |
|
|
|
child_argv[2] = "-c"; |
|
|
|
child_argv[2] = "-c"; |
|
|
|