diff options
Diffstat (limited to 'Src/signals.c')
-rw-r--r-- | Src/signals.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Src/signals.c b/Src/signals.c index 94f379e72..2a6aa3f24 100644 --- a/Src/signals.c +++ b/Src/signals.c @@ -537,6 +537,19 @@ wait_for_processes(void) #else update_process(pn, status); #endif + if (pn->pid == jn->gleader) { + jn->gleader = 0; + if (!(jn->stat & STAT_NOSTTY)) { + /* + * This PID was in control of the terminal; + * reclaim terminal now it has exited. + * It's still possible some future forked + * process of this job will become group + * leader, however. + */ + attachtty(mypgrp); + } + } } update_job(jn); } else if (findproc(pid, &jn, &pn, 1)) { |