diff options
author | Andreas Eversberg <jolly@eversberg.eu> | 2011-09-04 19:36:19 +0200 |
---|---|---|
committer | Andreas Eversberg <jolly@eversberg.eu> | 2011-09-04 19:37:57 +0200 |
commit | 4d077b0e4c2e5e76f1fe3d1695f12a5fb13be1f3 (patch) | |
tree | 2bb7dfb6fd94082656930639312fe90b12c9782b /src/host/layer23/src/mobile/main.c | |
parent | c9927c72ea31ad00b23da122280d6fcdec4a1a1e (diff) |
[mobile] Adding option to run as daemon
Diffstat (limited to 'src/host/layer23/src/mobile/main.c')
-rw-r--r-- | src/host/layer23/src/mobile/main.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/host/layer23/src/mobile/main.c b/src/host/layer23/src/mobile/main.c index 5739bfde..6e743df1 100644 --- a/src/host/layer23/src/mobile/main.c +++ b/src/host/layer23/src/mobile/main.c @@ -30,6 +30,7 @@ #include <osmocom/core/gsmtap_util.h> #include <osmocom/core/gsmtap.h> #include <osmocom/core/signal.h> +#include <osmocom/core/application.h> #include <arpa/inet.h> @@ -55,6 +56,7 @@ unsigned short vty_port = 4247; int debug_set = 0; char *config_dir = NULL; int use_mncc_sock = 0; +int daemonize = 0; int mncc_recv_socket(struct osmocom_ms *ms, int msg_type, void *arg); @@ -86,6 +88,7 @@ static void print_help() printf(" -v --vty-port The VTY port number to telnet to. " "(default %u)\n", vty_port); printf(" -d --debug Change debug flags.\n"); + printf(" -D --daemonize Run as daemon\n"); printf(" -m --mncc-sock Disable built-in MNCC handler and " "offer socket\n"); } @@ -99,11 +102,12 @@ static void handle_options(int argc, char **argv) {"gsmtap-ip", 1, 0, 'i'}, {"vty-port", 1, 0, 'v'}, {"debug", 1, 0, 'd'}, + {"daemonize", 0, 0, 'D'}, {"mncc-sock", 0, 0, 'm'}, {0, 0, 0, 0}, }; - c = getopt_long(argc, argv, "hi:v:d:m", + c = getopt_long(argc, argv, "hi:v:d:Dm", long_options, &option_index); if (c == -1) break; @@ -124,6 +128,9 @@ static void handle_options(int argc, char **argv) log_parse_category_mask(stderr_target, optarg); debug_set = 1; break; + case 'D': + daemonize = 1; + break; case 'm': use_mncc_sock = 1; break; @@ -208,6 +215,13 @@ int main(int argc, char **argv) signal(SIGTERM, sighandler); signal(SIGPIPE, sighandler); + if (daemonize) { + printf("Running as daemon\n"); + rc = osmo_daemonize(); + if (rc) + fprintf(stderr, "Failed to run as daemon\n"); + } + while (1) { l23_app_work(&quit); if (quit && llist_empty(&ms_list)) |