Merge branch 'mainstream'
[sliver-openvswitch.git] / ovsdb / ovsdb-server.c
index 4105a95..bdcdad9 100644 (file)
@@ -136,6 +136,7 @@ main(int argc, char *argv[])
 
     proctitle_init(argc, argv);
     set_program_name(argv[0]);
+    service_start(&argc, &argv);
     signal(SIGPIPE, SIG_IGN);
     process_init();
 
@@ -302,6 +303,9 @@ main(int argc, char *argv[])
         }
         poll_timer_wait_until(status_timer);
         poll_block();
+        if (should_service_stop()) {
+            exiting = true;
+        }
     }
     ovsdb_jsonrpc_server_destroy(jsonrpc);
     SHASH_FOR_EACH(node, &all_dbs) {
@@ -319,6 +323,7 @@ main(int argc, char *argv[])
         }
     }
 
+    service_stop();
     return 0;
 }
 
@@ -1167,7 +1172,9 @@ parse_options(int *argcp, char **argvp[],
     static const struct option long_options[] = {
         {"remote",      required_argument, NULL, OPT_REMOTE},
         {"unixctl",     required_argument, NULL, OPT_UNIXCTL},
+#ifndef _WIN32
         {"run",         required_argument, NULL, OPT_RUN},
+#endif
         {"help",        no_argument, NULL, 'h'},
         {"version",     no_argument, NULL, 'V'},
         DAEMON_LONG_OPTIONS,