Server restart via command no longer requires running as a daemon , uses execv()...
authorArt Cancro <ajc@citadel.org>
Tue, 13 Aug 2019 20:16:17 +0000 (16:16 -0400)
committerArt Cancro <ajc@citadel.org>
Tue, 13 Aug 2019 20:16:17 +0000 (16:16 -0400)
citadel/modules/ctdlproto/serv_syscmds.c
citadel/server_main.c

index 013e1408902aa9aef626a50ceed29f86347eb26a..7341ad238c0e6dc82225b18f56358b3a7fa26f60 100644 (file)
@@ -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;
        }
index 8c4f6374184ef380a508810eebe3d4bb934b2704..9bd9be89e8ebfd21468f6bc1a95b2ad5f6a61604 100644 (file)
@@ -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);
 }