Просмотр исходного кода

Shell: Make "fg" set the TTY PGID before SIGCONT'ing the job

Otherwise the child will get SIGTTIN/SIGTTOU on next TTY I/O.
Andreas Kling 5 лет назад
Родитель
Сommit
8dd0c391e9
1 измененных файлов с 3 добавлено и 0 удалено
  1. 3 0
      Shell/Builtin.cpp

+ 3 - 0
Shell/Builtin.cpp

@@ -349,6 +349,9 @@ int Shell::builtin_fg(int argc, const char** argv)
     dbg() << "Resuming " << job->pid() << " (" << job->cmd() << ")";
     fprintf(stderr, "Resuming job %" PRIu64 " - %s\n", job->job_id(), job->cmd().characters());
 
+    tcsetpgrp(STDOUT_FILENO, job->pgid());
+    tcsetpgrp(STDIN_FILENO, job->pgid());
+
     if (killpg(job->pgid(), SIGCONT) < 0) {
         perror("killpg");
         return 1;