diff options
author | Jon Bergli Heier <snakebite@jvnv.net> | 2010-09-04 01:20:33 +0200 |
---|---|---|
committer | Jon Bergli Heier <snakebite@jvnv.net> | 2010-09-04 01:20:33 +0200 |
commit | 671966ae7bb69fc04952a8accaa52fae5e77d8bb (patch) | |
tree | b3678ab9e73b9de72787e5ab701328b86c1ab761 /main.c | |
parent | b44aef17d76c7781e1ff5958e29fe5f2b006cb09 (diff) |
Added command-line options and daemonizer.
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -4,6 +4,8 @@ #include "conf.h" #include "servers.h" #include "control_service.h" +#include "options.h" +#include "daemon.h" #include <glib.h> #include <glib-object.h> @@ -11,6 +13,7 @@ #include <signal.h> GMainLoop *main_loop; +struct options options = {0}; static void sig_handler(int sig) { g_debug("caught signal %d", sig); @@ -22,6 +25,12 @@ int main(int argc, char **argv) { conf_load(); + options_parse(argc, argv, &options); + + if(options.daemonize == TRUE) { + daemonize(); + } + control_service_start(); servers_init(); @@ -33,6 +42,7 @@ int main(int argc, char **argv) { httpd_start(); signal(SIGINT, sig_handler); + signal(SIGTERM, sig_handler); main_loop = g_main_loop_new(NULL, FALSE); @@ -47,6 +57,10 @@ int main(int argc, char **argv) { control_service_stop(); + if(options.daemonize == TRUE) { + daemonize_finished(); + } + conf_free(); return 0; |