diff options
author | Eric Andersen <andersen@codepoet.org> | 2000-09-13 16:15:29 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2000-09-13 16:15:29 +0000 |
commit | fb6a50820cb973becc2f590aaf3979c183e33e0e (patch) | |
tree | ae11604a3e2f715ca56720a1b3593f54f9259ed3 | |
parent | d39d12099805ff4e0bb8841e951fc758d9b517c7 (diff) | |
download | busybox-w32-fb6a50820cb973becc2f590aaf3979c183e33e0e.tar.gz busybox-w32-fb6a50820cb973becc2f590aaf3979c183e33e0e.tar.bz2 busybox-w32-fb6a50820cb973becc2f590aaf3979c183e33e0e.zip |
Ensure forked processes always are on a controlling tty, so the
^C can be properly sent to /dev/console.
-Erik
-rw-r--r-- | init.c | 3 | ||||
-rw-r--r-- | init/init.c | 3 |
2 files changed, 4 insertions, 2 deletions
@@ -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 | ||
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 | ||