aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/rc/simple.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2004-03-26 17:30:36 +0000
committerrsc <devnull@localhost>2004-03-26 17:30:36 +0000
commit69ab5d3d499b74e9deb46eeaeaf31a6896b92bde (patch)
tree3dede6d61b79a182c61210af6637cae5ce5d8eed /src/cmd/rc/simple.c
parent25e0e4f334bd645f8d97de1ed5a77016797939dc (diff)
downloadplan9port-69ab5d3d499b74e9deb46eeaeaf31a6896b92bde.tar.gz
plan9port-69ab5d3d499b74e9deb46eeaeaf31a6896b92bde.tar.bz2
plan9port-69ab5d3d499b74e9deb46eeaeaf31a6896b92bde.zip
handle interrupts and backgrounded processes a little better.
Diffstat (limited to 'src/cmd/rc/simple.c')
-rw-r--r--src/cmd/rc/simple.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/cmd/rc/simple.c b/src/cmd/rc/simple.c
index c85c9098..85b20c37 100644
--- a/src/cmd/rc/simple.c
+++ b/src/cmd/rc/simple.c
@@ -63,6 +63,7 @@ void Xsimple(void){
Xerror("try again");
return;
case 0:
+ rfork(RFNOTEG);
pushword("exec");
execexec();
strcpy(buf, "can't exec: ");
@@ -70,10 +71,12 @@ void Xsimple(void){
errstr(buf+n, ERRMAX-n);
Exit(buf);
default:
+ kidpid = pid;
poplist();
/* interrupts don't get us out */
while(Waitfor(pid, 1) < 0)
;
+ kidpid = 0;
}
}
}