From d424d048b75f6ad6ddb3c92d8d1cf868d63e303f Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Tue, 13 Aug 2019 16:16:17 -0400 Subject: [PATCH] Server restart via command no longer requires running as a daemon , uses execv() to restart. --- citadel/modules/ctdlproto/serv_syscmds.c | 10 +--------- citadel/server_main.c | 3 +++ 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/citadel/modules/ctdlproto/serv_syscmds.c b/citadel/modules/ctdlproto/serv_syscmds.c index 013e14089..7341ad238 100644 --- a/citadel/modules/ctdlproto/serv_syscmds.c +++ b/citadel/modules/ctdlproto/serv_syscmds.c @@ -79,16 +79,8 @@ void cmd_scdn(char *argbuf) if (CtdlAccessCheck(ac_aide)) return; new_state = extract_int(argbuf, 0); - if ((new_state == 2) || (new_state == 3)) - { + if ((new_state == 2) || (new_state == 3)) { restart_server = 1; - if (!running_as_daemon) - { - syslog(LOG_ERR, "The user requested restart, but not running as deamon! Geronimooooooo!\n"); - Reply = "%d %d Warning, not running in deamon mode. maybe we will come up again, but don't lean on it.\n"; - state = ERROR; - } - restart_server = extract_int(argbuf, 0); new_state -= 2; } diff --git a/citadel/server_main.c b/citadel/server_main.c index 8c4f63741..9bd9be89e 100644 --- a/citadel/server_main.c +++ b/citadel/server_main.c @@ -358,5 +358,8 @@ int main(int argc, char **argv) int exit_code = master_cleanup(exit_signal); ctdl_lockfile(0); + if (restart_server) { + execv(argv[0], argv); + } return(exit_code); } -- 2.30.2