Commit | Line | Data |
---|---|---|
99ed9c43 MD |
1 | #ifndef LTTNG_DAEMONIZE_H |
2 | #define LTTNG_DAEMONIZE_H | |
3 | ||
4 | /* | |
ab5be9fa MJ |
5 | * Copyright (C) 2013 David Goulet <dgoulet@efficios.com> |
6 | * Copyright (C) 2014 Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | |
99ed9c43 | 7 | * |
ab5be9fa | 8 | * SPDX-License-Identifier: GPL-2.0-only |
99ed9c43 | 9 | * |
99ed9c43 MD |
10 | */ |
11 | ||
12 | #include <unistd.h> | |
d5d51699 | 13 | #include <common/macros.h> |
99ed9c43 MD |
14 | |
15 | /* | |
16 | * Daemonize this process by forking and making the parent wait for the child | |
17 | * to signal it indicating readiness. Once received, the parent successfully | |
18 | * quits. | |
19 | * | |
20 | * The child process undergoes the same action that daemon(3) does meaning | |
21 | * setsid, chdir, and dup /dev/null into 0, 1 and 2. | |
22 | * | |
23 | * Return 0 on success else -1 on error. | |
24 | */ | |
d5d51699 | 25 | LTTNG_HIDDEN |
99ed9c43 MD |
26 | int lttng_daemonize(pid_t *child_ppid, int *completion_flag, |
27 | int close_fds); | |
28 | ||
29 | #endif /* LTTNG_DAEMONIZE_H */ |