summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOndrej Kos <okos@redhat.com>2013-06-19 14:42:40 +0200
committerJakub Hrozek <jhrozek@redhat.com>2013-06-25 11:56:48 +0200
commita0cf92bf59e02c5b5889d2b86a8ad98e75ee211a (patch)
tree7d4af5f4da541fbbce90957884ee5eca89e04b5e
parentaea372fbfe7928f11dc430868445542c28dcfd41 (diff)
downloadsssd-a0cf92bf59e02c5b5889d2b86a8ad98e75ee211a.tar.gz
sssd-a0cf92bf59e02c5b5889d2b86a8ad98e75ee211a.tar.xz
sssd-a0cf92bf59e02c5b5889d2b86a8ad98e75ee211a.zip
Quit monitor when there's no more processes to stop
-rw-r--r--src/monitor/monitor.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c
index 8f1be95af..a763a0f4d 100644
--- a/src/monitor/monitor.c
+++ b/src/monitor/monitor.c
@@ -1195,7 +1195,9 @@ static void monitor_quit(struct mt_ctx *mt_ctx, int ret)
if (pid == -1) {
/* An error occurred while waiting */
error = errno;
- if (error != EINTR) {
+ if (error == ECHILD) {
+ killed = true;
+ } else if (error != EINTR) {
DEBUG(0, ("[%d][%s] while waiting for [%s]\n",
error, strerror(error), svc->name));
/* Forcibly kill this child */