--- a/src/server/daemon/srvctrl.c Fri Oct 31 21:15:19 2025 +0100 +++ b/src/server/daemon/srvctrl.c Fri Oct 31 21:31:02 2025 +0100 @@ -105,10 +105,18 @@ int fd = accept(srvctrl, NULL, 0); if(fd < 0) { if(srv_shutdown) break; + log_ereport( LOG_FAILURE, "srvctrl: accept failed: %s", strerror(errno)); + + int err = errno; + if(err == EMFILE || err == ENFILE) { + sleep(5); + continue; + } + break; } @@ -186,6 +194,8 @@ } } else if(!cx_strcmp(cx_strcast(cmd), cx_str("shutdown"))) { webserver_shutdown(); + } else if(!cx_strcmp(cx_strcast(cmd), cx_str("stop"))) { + webserver_stop(); } else if(!cx_strcmp(cx_strcast(cmd), cx_str("stat"))) { // TODO: implement } else if(!cx_strcmp(cx_strcast(cmd), cx_str("log"))) {