]> granicus.if.org Git - apache/commitdiff
Make the neccessary changes to mpm_common and main to support a graceful-stop
authorColm MacCarthaigh <colm@apache.org>
Fri, 26 Aug 2005 16:00:59 +0000 (16:00 +0000)
committerColm MacCarthaigh <colm@apache.org>
Fri, 26 Aug 2005 16:00:59 +0000 (16:00 +0000)
command line argument.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@240269 13f79535-47bb-0310-9956-ffa450edef68

server/main.c
server/mpm_common.c

index 732b10097b61016b1abaeb2a6054404ceaebc883..c73a315d29c854a41ba31c52ad632e425763c14d 100644 (file)
@@ -318,9 +318,15 @@ static void usage(process_rec *process)
                  pad);
 #endif
 #ifdef AP_MPM_WANT_SIGNAL_SERVER
+#ifdef AP_MPM_SUPPORTS_GRACEFUL_STOP
+    ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
+                 "       %s [-k start|restart|graceful|graceful-stop|stop]",
+                 pad);
+#else
     ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
                  "       %s [-k start|restart|graceful|stop]",
                  pad);
+#endif /* AP_MPM_SUPPORTS_GRACEFUL_STOP */
 #endif
     ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
                  "       %s [-v] [-V] [-h] [-l] [-L] [-t] [-S]", pad);
index 93711f7c192392105b57b1255ba53fd7f5090d9a..e8a8cb44a4f1f77c1924978c3e0116c6fc637012 100644 (file)
@@ -921,6 +921,20 @@ int ap_signal_server(int *exit_status, apr_pool_t *pconf)
             return 1;
         }
     }
+    
+    if (!strcmp(dash_k_arg, "graceful-stop")) {
+#ifdef AP_MPM_SUPPORTS_GRACEFUL_STOP
+        if (!running) {
+            printf("%s\n", status);
+        }
+        else {
+            *exit_status = send_signal(otherpid, AP_SIG_GRACEFUL_STOP);
+        }
+#else
+        printf("httpd MPM \"" MPM_NAME "\" does not support graceful-stop\n");
+#endif
+        return 1;
+    }
 
     return 0;
 }
@@ -949,7 +963,8 @@ void ap_mpm_rewrite_args(process_rec *process)
         case 'k':
             if (!dash_k_arg) {
                 if (!strcmp(optarg, "start") || !strcmp(optarg, "stop") ||
-                    !strcmp(optarg, "restart") || !strcmp(optarg, "graceful")) {
+                    !strcmp(optarg, "restart") || !strcmp(optarg, "graceful") ||
+                    !strcmp(optarg, "graceful-stop")) {
                     dash_k_arg = optarg;
                     break;
                 }