WvStreams
|
WvDaemon - High-level abstraction for creating daemon processes. More...
#include <wvdaemon.h>
Public Member Functions | |
WvDaemon (WvStringParm _name, WvStringParm _version, WvDaemonCallback _start_callback, WvDaemonCallback _run_callback, WvDaemonCallback _stop_callback) | |
Construct a new daemon; requires the name, version, and optional userdata to be passed to the callbacks. | |
int | run (const char *argv0) |
Run the daemon with no argument processing. Returns exit status. | |
int | run (int argc, char **argv) |
Run the daemon after doing argument processing. Returns exit status. | |
void | restart () |
Force the daemon to restart as soon as the run callback exits. | |
void | die (int status=0) |
Force the daemon to exit as soon as the run callback exits. | |
bool | want_to_restart () const |
Whether the daemon will restart when the run callback exits. | |
bool | want_to_die () const |
Whether the daemon will quit when the run callback exits. | |
bool | should_run () const |
Whether the daemon should continue runnning. | |
const WvStringList & | extra_args () const |
Remaining args. | |
const char * | wstype () const |
WvDaemon (WvStringParm _name, WvStringParm _version, WvDaemonCallback _start_callback, WvDaemonCallback _run_callback, WvDaemonCallback _stop_callback) | |
Construct a new daemon; requires the name, version, and optional userdata to be passed to the callbacks. | |
int | run (const char *argv0) |
Run the daemon with no argument processing. Returns exit status. | |
int | run (int argc, char **argv) |
Run the daemon after doing argument processing. Returns exit status. | |
void | restart () |
Force the daemon to restart as soon as the run callback exits. | |
void | die (int status=0) |
Force the daemon to exit as soon as the run callback exits. | |
bool | want_to_restart () const |
Whether the daemon will restart when the run callback exits. | |
bool | want_to_die () const |
Whether the daemon will quit when the run callback exits. | |
bool | should_run () const |
Whether the daemon should continue runnning. | |
const WvStringList & | extra_args () const |
Remaining args. | |
const char * | wstype () const |
Static Public Member Functions | |
static WvDaemon * | me () |
static WvDaemon * | me () |
Public Attributes | |
WvString | name |
The name and version of the daemon; used for -V and logging. | |
WvString | version |
WvString | pid_file |
The path to the pid file to use for the daemon; defaults to /var/run/name.pid, where name is above. | |
bool | daemonize |
Whether the daemon should daemonize by default (it can be changed by the default options); defaults to false. | |
WvArgs | args |
The arguments the daemon accepts; the defaults are described above. | |
WvLog | log |
The daemon's log mechanism. | |
WvLog::LogLevel | log_level |
bool | syslog |
WvDaemonCallback | load_callback |
See the class description. | |
WvDaemonCallback | start_callback |
WvDaemonCallback | run_callback |
WvDaemonCallback | stop_callback |
WvDaemonCallback | unload_callback |
Protected Member Functions | |
virtual void | do_load () |
virtual void | do_start () |
virtual void | do_run () |
virtual void | do_stop () |
virtual void | do_unload () |
bool | dec_log_level (void *) |
bool | inc_log_level (void *) |
virtual void | do_load () |
virtual void | do_start () |
virtual void | do_run () |
virtual void | do_stop () |
virtual void | do_unload () |
bool | dec_log_level (void *) |
bool | inc_log_level (void *) |
Protected Attributes | |
WvStringList | _extra_args |
WvDaemon - High-level abstraction for creating daemon processes.
WvDaemon makes it easy to create daemon processes that support forking into the background and detaching from terminals, management of the .pid file and the log file, and handling of the SIGTERM|SIGINT|SIGQUIT and SIGHUP signals.
By default, daemons implemented through WvDaemon provide the following command line options:
-q|–quiet: decrease the log level by one -v|–verbose: increase the log level by one -d|–daemonize: fork into the background (implies –syslog) -s|–syslog: write log entries to the syslog() facility –no-syslog: do not write log entries to the syslog() facility -V|–version: print the program name and version number and exit immediately
These default arguments can be changed or appended to through the public member WvDaemon::args of type WvArgs.
By default, daemons run in the foreground for debugging purposes; you must pass the -d parameter to force them into the background.
The actual functionality of WvDaemon is implemented through five protected member callbacks:
WvDaemon::load_callback: Called as soon as the arguments are processed and the process has (optionally) daemonized WvDaemon::start_callback: Called after WvDaemon::load_callback and after restarting due to SIGHUP WvDaemon::run_callback: The main loop callback.
Sample usage:
!
Definition at line 85 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
|
inline |
Construct a new daemon; requires the name, version, and optional userdata to be passed to the callbacks.
Definition at line 164 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
|
virtual |
Definition at line 114 of file wvdaemon.cc.
|
inline |
Construct a new daemon; requires the name, version, and optional userdata to be passed to the callbacks.
Definition at line 164 of file include/wvdaemon.h.
|
protectedvirtual |
Definition at line 245 of file wvdaemon.cc.
|
protectedvirtual |
Definition at line 299 of file wvdaemon.cc.
|
protectedvirtual |
Definition at line 306 of file wvdaemon.cc.
|
protectedvirtual |
Definition at line 313 of file wvdaemon.cc.
|
protectedvirtual |
Definition at line 320 of file wvdaemon.cc.
|
inlineprotected |
Definition at line 144 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
|
inlineprotected |
Definition at line 151 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
int WvDaemon::run | ( | const char * | argv0 | ) |
int WvDaemon::run | ( | int | argc, |
char ** | argv | ||
) |
Run the daemon after doing argument processing. Returns exit status.
Definition at line 204 of file wvdaemon.cc.
References args, WvArgs::process(), and run().
|
inline |
Force the daemon to restart as soon as the run callback exits.
Definition at line 182 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
|
inline |
Force the daemon to exit as soon as the run callback exits.
Definition at line 187 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
|
inline |
Whether the daemon will restart when the run callback exits.
Definition at line 194 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
|
inline |
Whether the daemon will quit when the run callback exits.
Definition at line 199 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
|
inline |
Whether the daemon should continue runnning.
Definition at line 205 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
|
inline |
Remaining args.
Definition at line 211 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
|
inlinestatic |
Definition at line 216 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
|
inline |
Definition at line 222 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
|
inlineprotected |
Definition at line 144 of file include/wvdaemon.h.
|
inlineprotected |
Definition at line 151 of file include/wvdaemon.h.
|
inline |
Force the daemon to restart as soon as the run callback exits.
Definition at line 182 of file include/wvdaemon.h.
|
inline |
Force the daemon to exit as soon as the run callback exits.
Definition at line 187 of file include/wvdaemon.h.
|
inline |
Whether the daemon will restart when the run callback exits.
Definition at line 194 of file include/wvdaemon.h.
|
inline |
Whether the daemon will quit when the run callback exits.
Definition at line 199 of file include/wvdaemon.h.
|
inline |
Whether the daemon should continue runnning.
Definition at line 205 of file include/wvdaemon.h.
|
inline |
Remaining args.
Definition at line 211 of file include/wvdaemon.h.
|
inlinestatic |
Definition at line 216 of file include/wvdaemon.h.
|
inline |
Definition at line 222 of file include/wvdaemon.h.
WvString WvDaemon::name |
The name and version of the daemon; used for -V and logging.
Definition at line 93 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
Referenced by run().
WvString WvDaemon::version |
Definition at line 94 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
WvString WvDaemon::pid_file |
The path to the pid file to use for the daemon; defaults to /var/run/name.pid, where name is above.
Definition at line 97 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
bool WvDaemon::daemonize |
Whether the daemon should daemonize by default (it can be changed by the default options); defaults to false.
Definition at line 100 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
Referenced by run().
WvArgs WvDaemon::args |
The arguments the daemon accepts; the defaults are described above.
Definition at line 104 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
Referenced by run().
WvLog WvDaemon::log |
The daemon's log mechanism.
Definition at line 106 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
Referenced by run().
WvLog::LogLevel WvDaemon::log_level |
Definition at line 107 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
bool WvDaemon::syslog |
Definition at line 108 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
WvDaemonCallback WvDaemon::load_callback |
See the class description.
Definition at line 113 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
WvDaemonCallback WvDaemon::start_callback |
Definition at line 114 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
WvDaemonCallback WvDaemon::run_callback |
Definition at line 115 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
WvDaemonCallback WvDaemon::stop_callback |
Definition at line 116 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
WvDaemonCallback WvDaemon::unload_callback |
Definition at line 117 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.
|
protected |
Definition at line 158 of file debian/libwvstreams-dev/usr/include/wvstreams/wvdaemon.h.