From 72dd74910ee17be5d82c6b2286f454942bf19d24 Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Sun, 26 Jan 2014 22:59:31 -0500 Subject: [PATCH] sessiond: add --background argument Allow starting sessiond like --daemonize, but keeps console open. Signed-off-by: Mathieu Desnoyers --- doc/man/lttng-sessiond.8 | 3 +++ src/bin/lttng-sessiond/main.c | 14 ++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/doc/man/lttng-sessiond.8 b/doc/man/lttng-sessiond.8 index ade2e66b5..ee355fe1a 100644 --- a/doc/man/lttng-sessiond.8 +++ b/doc/man/lttng-sessiond.8 @@ -56,6 +56,9 @@ Verbose mode for consumer. Activate DBG() macro. .BR "-d, --daemonize" Start as a daemon .TP +.BR "-b, --background" +Start as a daemon, keeping console open +.TP .BR "-g, --group=NAME" Specify the tracing group name. (default: tracing) .TP diff --git a/src/bin/lttng-sessiond/main.c b/src/bin/lttng-sessiond/main.c index a9e679755..37c7354ef 100644 --- a/src/bin/lttng-sessiond/main.c +++ b/src/bin/lttng-sessiond/main.c @@ -77,7 +77,7 @@ static int tracing_group_name_override; static char *opt_pidfile; static int opt_sig_parent; static int opt_verbose_consumer; -static int opt_daemon; +static int opt_daemon, opt_background; static int opt_no_kernel; static int is_root; /* Set to 1 if the daemon is running as root */ static pid_t ppid; /* Parent PID for --sig-parent option */ @@ -140,6 +140,7 @@ static const struct option long_options[] = { { "consumerd64-path", 1, 0, 't' }, { "consumerd64-libdir", 1, 0, 'T' }, { "daemonize", 0, 0, 'd' }, + { "background", 0, 0, 'b' }, { "sig-parent", 0, 0, 'S' }, { "help", 0, 0, 'h' }, { "group", 1, 0, 'g' }, @@ -311,7 +312,7 @@ void lttng_sessiond_notify_ready(void) * Notify the parent of the fork() process that we are * ready. */ - if (opt_daemon) { + if (opt_daemon || opt_background) { kill(child_ppid, SIGUSR1); } } @@ -4039,6 +4040,7 @@ static void usage(void) fprintf(stderr, " --consumerd64-path PATH Specify path for the 64-bit UST consumer daemon binary\n"); fprintf(stderr, " --consumerd64-libdir PATH Specify path for the 64-bit UST consumer daemon libraries\n"); fprintf(stderr, " -d, --daemonize Start as a daemon.\n"); + fprintf(stderr, " -b, --background Start as a daemon, keeping console open.\n"); fprintf(stderr, " -g, --group NAME Specify the tracing group name. (default: tracing)\n"); fprintf(stderr, " -V, --version Show version number.\n"); fprintf(stderr, " -S, --sig-parent Send SIGUSR1 to parent pid to notify readiness.\n"); @@ -4077,6 +4079,9 @@ static int set_option(int opt, const char *arg, const char *optname) case 'd': opt_daemon = 1; break; + case 'b': + opt_background = 1; + break; case 'g': tracing_group_name = strdup(arg); break; @@ -4725,10 +4730,11 @@ int main(int argc, char **argv) } /* Daemonize */ - if (opt_daemon) { + if (opt_daemon || opt_background) { int i; - ret = lttng_daemonize(&child_ppid, &recv_child_signal, 1); + ret = lttng_daemonize(&child_ppid, &recv_child_signal, + !opt_background); if (ret < 0) { goto error; } -- 2.34.1