Merge pull request #107 from jonasj76/inetd-stop-children

Stop inetd spawned child processes when stopping inetd service
This commit is contained in:
Joachim Nilsson authored and GitHub committed 2018-03-23 15:48:02 +01:00
commit efb1d40ffd
1 file changed
+11
+11
View File
@@ -351,9 +351,20 @@ void inetd_stop(inetd_t *inetd)
* and halt the watcher, so don't close the socket! * and halt the watcher, so don't close the socket!
*/ */
if (!svc_is_busy(inetd->svc)) { if (!svc_is_busy(inetd->svc)) {
svc_t *svc, *iter = NULL;
_d("Shutting down inet socket %d ...", inetd->watcher.fd); _d("Shutting down inet socket %d ...", inetd->watcher.fd);
close(inetd->watcher.fd); close(inetd->watcher.fd);
inetd->watcher.fd = -1; inetd->watcher.fd = -1;
svc = svc_job_iterator(&iter, 1, inetd->svc->job);
while (svc) {
if (!svc_is_inetd(svc)) {
svc_stop(svc);
service_step(svc);
}
svc = svc_job_iterator(&iter, 0, inetd->svc->job);
}
} }
} }
} }