Daemonize sessiond on `lttng create`
authorPhilippe Proulx <eeppeliteloop@gmail.com>
Thu, 27 Aug 2015 15:52:33 +0000 (11:52 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Tue, 8 Sep 2015 13:44:06 +0000 (09:44 -0400)
commit550b3e4b614b8ac4d9d90c6216a937861e8fe883
treee3051fe35522525fd19885def6db6549844fd8e0
parenta04821e0fb5919edd3130dc56dc14bd2ca3b6ee4
Daemonize sessiond on `lttng create`

Since the session daemon forked by `lttng create` shares its
standard output/error FDs when not using `--daemonize`, redirecting
the standard output/error of this command to another program "hangs"
because the session daemon never terminates.

Example that's not working (when sessiond is not running):

    lttng create | wc

or:

    lttng 2>&1 | wc

Using sessiond's `--daemonize` option makes it close its FDs. This
option also ensures that when the sessiond process exits, it has forked
itself as a daemon and is ready to accept commands. Therefore we don't
need to catch SIGCHLD and SIGUSR1; just waitpid() on sessiond's PID and
make sure it exited normally and with an exit status of 0 to continue.

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/bin/lttng/commands/create.c
src/bin/lttng/lttng.c
src/bin/lttng/utils.h
This page took 0.027151 seconds and 4 git commands to generate.