diff options
author | Nate Straz <nstraz@redhat.com> | 2005-08-25 16:35:32 +0000 |
---|---|---|
committer | Nate Straz <nstraz@redhat.com> | 2005-08-25 16:35:32 +0000 |
commit | 73a1801311d4a7ae542aa4d0a2b3fe09704cb849 (patch) | |
tree | 73112a0ea9d9252980107442dc6b55cd3fb990e9 | |
parent | 06b6835413fdc351ca425bbd4dc12dcb257ba425 (diff) | |
download | qarsh-73a1801311d4a7ae542aa4d0a2b3fe09704cb849.tar.gz qarsh-73a1801311d4a7ae542aa4d0a2b3fe09704cb849.tar.xz qarsh-73a1801311d4a7ae542aa4d0a2b3fe09704cb849.zip |
Put child process in its own process group and send signals to the
whole process group.
-rw-r--r-- | qarsh/qarshd.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/qarsh/qarshd.c b/qarsh/qarshd.c index bf8353b..55de12e 100644 --- a/qarsh/qarshd.c +++ b/qarsh/qarshd.c @@ -71,6 +71,7 @@ run_cmd(const char *cmd, int p_in, int p_out, int p_err) } if (pid == 0) { /* child */ + setpgrp(); /* Connect stdin, stdout, and stderr to qarsh */ new_in = connect_to_peer(&peername, p_in); @@ -167,7 +168,7 @@ handle_packets(int infd) syslog(LOG_INFO, "Sending child %d signal %d", child_pid, qp->qp_kill.qp_sig); - kill(child_pid, qp->qp_kill.qp_sig); + kill(child_pid * -1, qp->qp_kill.qp_sig); } break; case QP_SETUSER: |