hush: die_sllep needs restoring only if job control is on
This commit is contained in:
parent
08126f665d
commit
83177991c8
@ -759,7 +759,8 @@ static void handler_ctrl_z(int sig)
|
||||
return;
|
||||
ctrl_z_flag = 1;
|
||||
if (!pid) { /* child */
|
||||
die_sleep = 0; /* let nofork's xfuncs die */
|
||||
if (ENABLE_HUSH_JOB)
|
||||
die_sleep = 0; /* let nofork's xfuncs die */
|
||||
setpgrp();
|
||||
debug_printf_jobs("set pgrp for child %d ok\n", getpid());
|
||||
set_every_sighandler(SIG_DFL);
|
||||
@ -1900,7 +1901,8 @@ static int run_pipe(struct pipe *pi)
|
||||
|
||||
child->pid = BB_MMU ? fork() : vfork();
|
||||
if (!child->pid) { /* child */
|
||||
die_sleep = 0; /* let nofork's xfuncs die */
|
||||
if (ENABLE_HUSH_JOB)
|
||||
die_sleep = 0; /* let nofork's xfuncs die */
|
||||
#if ENABLE_HUSH_JOB
|
||||
/* Every child adds itself to new process group
|
||||
* with pgid == pid_of_first_child_in_pipe */
|
||||
@ -3239,7 +3241,8 @@ static FILE *generate_stream_from_list(struct pipe *head)
|
||||
if (pid < 0)
|
||||
bb_perror_msg_and_die(BB_MMU ? "fork" : "vfork");
|
||||
if (pid == 0) { /* child */
|
||||
die_sleep = 0; /* let nofork's xfuncs die */
|
||||
if (ENABLE_HUSH_JOB)
|
||||
die_sleep = 0; /* let nofork's xfuncs die */
|
||||
close(channel[0]);
|
||||
xmove_fd(channel[1], 1);
|
||||
/* Prevent it from trying to handle ctrl-z etc */
|
||||
|
Loading…
Reference in New Issue
Block a user