summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNate Straz <nstraz@redhat.com>2005-08-25 16:35:32 +0000
committerNate Straz <nstraz@redhat.com>2005-08-25 16:35:32 +0000
commit73a1801311d4a7ae542aa4d0a2b3fe09704cb849 (patch)
tree73112a0ea9d9252980107442dc6b55cd3fb990e9
parent06b6835413fdc351ca425bbd4dc12dcb257ba425 (diff)
downloadqarsh-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.c3
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: