diff options
author | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2000-09-13 16:15:29 +0000 |
---|---|---|
committer | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2000-09-13 16:15:29 +0000 |
commit | f36f9b0d3611e92feb7a8009f2d02195674e8f85 (patch) | |
tree | ae11604a3e2f715ca56720a1b3593f54f9259ed3 /init | |
parent | e9ed3f48d262fbd30f63799ade87729d0bf4bac2 (diff) | |
download | busybox-w32-f36f9b0d3611e92feb7a8009f2d02195674e8f85.tar.gz busybox-w32-f36f9b0d3611e92feb7a8009f2d02195674e8f85.tar.bz2 busybox-w32-f36f9b0d3611e92feb7a8009f2d02195674e8f85.zip |
Ensure forked processes always are on a controlling tty, so the
^C can be properly sent to /dev/console.
-Erik
git-svn-id: svn://busybox.net/trunk/busybox@1043 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'init')
-rw-r--r-- | init/init.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/init/init.c b/init/init.c index b532ea88f..b3ae97d2e 100644 --- a/init/init.c +++ b/init/init.c | |||
@@ -411,6 +411,7 @@ static pid_t run(char *command, char *terminal, int get_enter) | |||
411 | 411 | ||
412 | if ((pid = fork()) == 0) { | 412 | if ((pid = fork()) == 0) { |
413 | /* Clean up */ | 413 | /* Clean up */ |
414 | ioctl(0, TIOCNOTTY, 0); | ||
414 | close(0); | 415 | close(0); |
415 | close(1); | 416 | close(1); |
416 | close(2); | 417 | close(2); |
@@ -430,7 +431,7 @@ static pid_t run(char *command, char *terminal, int get_enter) | |||
430 | dup2(fd, 0); | 431 | dup2(fd, 0); |
431 | dup2(fd, 1); | 432 | dup2(fd, 1); |
432 | dup2(fd, 2); | 433 | dup2(fd, 2); |
433 | ioctl(0, TIOCSCTTY, 0); | 434 | ioctl(0, TIOCSCTTY, 1); |
434 | tcsetpgrp(0, getpgrp()); | 435 | tcsetpgrp(0, getpgrp()); |
435 | set_term(0); | 436 | set_term(0); |
436 | 437 | ||