From: Timo Sirainen Date: Tue, 8 Sep 2009 22:05:50 +0000 (-0400) Subject: master: When killing idle processes, don't kill the service's last one. X-Git-Tag: 2.0.alpha1~144 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ad789b139a890a1b4f54d6aaaf6a3800581611bc;p=thirdparty%2Fdovecot%2Fcore.git master: When killing idle processes, don't kill the service's last one. --HG-- branch : HEAD --- diff --git a/src/master/service-monitor.c b/src/master/service-monitor.c index ccb50b1b11..dd10b33370 100644 --- a/src/master/service-monitor.c +++ b/src/master/service-monitor.c @@ -25,8 +25,10 @@ static void service_process_kill_idle(struct service_process *process) { struct service *service = process->service; - if (service->process_avail <= service->set->process_min_avail) { - /* we don't have any extra idling processes */ + if (service->process_avail <= service->set->process_min_avail || + service->process_avail == 1) { + /* we don't have any extra idling processes. and if there's + no minimum limit, never kill the last process anyway */ timeout_remove(&process->to_idle); } else { if (kill(process->pid, SIGINT) < 0 && errno != ESRCH) {