summaryrefslogtreecommitdiffstats
path: root/src/cmd/rc/havefork.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2005-03-18 19:03:25 +0000
committerrsc <devnull@localhost>2005-03-18 19:03:25 +0000
commit4ee543e58c5e6cf5ef0b94dfec752dadbbd063d3 (patch)
tree2bfb7c9dbe3dcc28e639d734df00cceb33b1be88 /src/cmd/rc/havefork.c
parentca30274bd90f09b6d19d36b87278fdb40efddada (diff)
downloadplan9port-4ee543e58c5e6cf5ef0b94dfec752dadbbd063d3.tar.gz
plan9port-4ee543e58c5e6cf5ef0b94dfec752dadbbd063d3.zip
try harder to put background jobs in background; do not print in response to SIGPIPE
Diffstat (limited to 'src/cmd/rc/havefork.c')
-rw-r--r--src/cmd/rc/havefork.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/cmd/rc/havefork.c b/src/cmd/rc/havefork.c
index e81046d6..6e4aa924 100644
--- a/src/cmd/rc/havefork.c
+++ b/src/cmd/rc/havefork.c
@@ -1,3 +1,5 @@
+#include <u.h>
+#include <signal.h>
#include "rc.h"
#include "getflags.h"
#include "exec.h"
@@ -11,7 +13,9 @@ Xasync(void)
{
int null = open("/dev/null", 0);
int pid;
+ int tcpgrp, pgrp;
char npid[10];
+
if(null<0){
Xerror("Can't open /dev/null\n");
return;
@@ -22,6 +26,12 @@ Xasync(void)
Xerror("try again");
break;
case 0:
+ /*
+ * Should make reads of tty fail, writes succeed.
+ */
+ signal(SIGTTIN, SIG_IGN);
+ signal(SIGTTOU, SIG_IGN);
+
pushredir(ROPEN, null, 0);
start(runq->code, runq->pc+1, runq->local);
runq->ret = 0;