diff options
Diffstat (limited to 'libdaemon/dfork.h')
-rw-r--r-- | libdaemon/dfork.h | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/libdaemon/dfork.h b/libdaemon/dfork.h deleted file mode 100644 index 47b1630..0000000 --- a/libdaemon/dfork.h +++ /dev/null @@ -1,165 +0,0 @@ -#ifndef foodaemonforkhfoo -#define foodaemonforkhfoo - -/*** - This file is part of libdaemon. - - Copyright 2003-2008 Lennart Poettering - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - -***/ - -#include <sys/types.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/** \mainpage libdaemon - * - * libdaemon - * - * For a brief explanation of libdaemons's purpose, have a look on the - * README file. Thank you! - * - */ - -/** \example testd.c - * This is an example for the usage of libdaemon - */ - -/** \file - * - * Contains an API for doing a daemonizing fork(). - * - * You may daemonize by calling daemon_fork(), a function similar to - * the plain fork(). If you want to return a return value of the - * initialization procedure of the child from the parent, you may use - * the daemon_retval_xxx() functions. - */ - -/** Does a daemonizing fork(). For the new daemon process STDIN, - * STDOUT, STDERR are connected to /dev/null, the process is a session - * leader, the current directory is changed to /, the umask is set to - * 777. - * @return On success, the PID of the child process is returned in the - * parent's thread of execution, and a 0 is returned in the child's - * thread of execution. On failure, -1 will be returned in the - * parent's context, no child process will be created, and errno will - * be set appropriately. - */ -pid_t daemon_fork(void); - -/** Allocate and initialize resources required by the - * daemon_retval_xxx() functions. These functions allow the child to - * send a value to the parent after completing its initialisation. - * Call this in the parent before forking. - * @return zero on success, nonzero on failure. - */ -int daemon_retval_init(void); - -/** Frees the resources allocated by daemon_retval_init(). This should - * be called if neither daemon_retval_wait() nor daemon_retval_send() - * is called in the current process. The resources allocated by - * daemon_retval_init() should be freed in both parent and daemon - * process. This may be achieved by using daemon_retval_wait() - * resp. daemon_retval_send(), or by using daemon_retval_done(). - */ -void daemon_retval_done(void); - -/** Return the value sent by the child via the daemon_retval_send() - * function, but wait only the specified number of seconds before - * timing out and returning a negative number. Should be called just - * once from the parent process only. A subsequent call to - * daemon_retval_done() in the parent is ignored. - * - * @param timeout Thetimeout in seconds - * @return The integer passed daemon_retval_send() in the daemon process, or -1 on failure. - */ -int daemon_retval_wait(int timeout); - -/** Send the specified integer to the parent process. Do not send -1 - * because this signifies a library error. Should be called just once - * from the daemon process only. A subsequent call to - * daemon_retval_done() in the daemon is ignored. @param s The - * integer to pass to daemon_retval_wait() in the parent process - * @return Zero on success, nonzero on failure. - */ -int daemon_retval_send(int s); - -/** This variable is defined to 1 iff daemon_close_all() and - * daemon_close_allv() are supported. - * @since 0.11 - * @see daemon_close_all(), daemon_close_allv() */ -#define DAEMON_CLOSE_ALL_AVAILABLE 1 - -/** Close all file descriptors except those passed. List needs to be - * terminated by -1. FDs 0, 1, 2 will be kept open anyway. - * @since 0.11 - * @see DAEMON_CLOSE_ALL_AVAILABLE */ -int daemon_close_all(int except_fd, ...); - -/** Same as daemon_close_all but takes an array of fds, terminated by - * -1 - * @since 0.11 - * @see DAEMON_CLOSE_ALL_AVAILABLE */ -int daemon_close_allv(const int except_fds[]); - -/** This variable is defined to 1 iff daemon_unblock_sigs() and - * daemon_unblock_sigsv() are supported. - * @since 0.13 - * @see daemon_unblock_sigs(), daemon_unblock_sigsv()*/ -#define DAEMON_UNBLOCK_SIGS_AVAILABLE 1 - -/** Unblock all signals except those passed. List needs to be - * terminated by -1. - * @since 0.13 - * @see DAEMON_UNBLOCK_SIGS_AVAILABLE */ -int daemon_unblock_sigs(int except, ...); - -/** Same as daemon_unblock_sigs() but takes an array of signals, - * terminated by -1 - * @since 0.13 - * @see DAEMON_UNBLOCK_SIGS_AVAILABLE */ -int daemon_unblock_sigsv(const int except[]); - -/** This variable is defined to 1 iff daemon_reset_sigs() and - * daemon_reset_sigsv() are supported. - * @since 0.13 - * @see daemon_reset_sigs(), daemon_reset_sigsv() */ -#define DAEMON_RESET_SIGS_AVAILABLE 1 - -/** Reset all signal handlers except those passed. List needs to be - * terminated by -1. - * @since 0.13 - * @see DAEMON_RESET_SIGS_AVAILABLE */ -int daemon_reset_sigs(int except, ...); - -/** Same as daemon_reset_sigs() but takes an array of signals, - * terminated by -1 - * @since 0.13 - * @see DAEMON_RESET_SIGS_AVAILABLE */ -int daemon_reset_sigsv(const int except[]); - -#ifdef __cplusplus -} -#endif - -#endif |