A class for creating pid files. More...
#include <gpidfile.h>
Public Member Functions | |
PidFile (const Path &pid_file_path) | |
Constructor. More... | |
PidFile () | |
Default constructor. More... | |
void | init (const Path &pid_file_path) |
Used after default construction. More... | |
~PidFile () | |
Destructor. More... | |
void | commit () |
Creates the file. More... | |
void | check () |
Throws an exception if the path is not absolute. More... | |
Path | path () const |
Returns the path as supplied to the constructor or init(). More... | |
Static Public Member Functions | |
static void | cleanup (SignalSafe, const char *path) |
Deletes the specified pid file if it contains this process's id. More... | |
A class for creating pid files.
Works with G::Root and G::Daemon so that the pid file can get created very late in a daemon startup sequence. Installs a signal handler so that the pid file gets deleted on process termination.
Usage:
Definition at line 56 of file gpidfile.h.
|
explicit |
Constructor.
The path should normally be an absolute path. Use commit() to actually create the file.
Definition at line 41 of file gpidfile.cpp.
G::PidFile::PidFile | ( | ) |
Default constructor.
Constructs a do-nothing object. Initialise with init().
Definition at line 31 of file gpidfile.cpp.
G::PidFile::~PidFile | ( | ) |
void G::PidFile::check | ( | ) |
Throws an exception if the path is not absolute.
Definition at line 92 of file gpidfile.cpp.
Referenced by G::Daemon::detach().
|
static |
Deletes the specified pid file if it contains this process's id.
Signal-safe, reentrant implementation.
Definition at line 75 of file gpidfile.cpp.
References G::Root::start(), and G::Root::stop().
void G::PidFile::commit | ( | ) |
Creates the file.
Definition at line 98 of file gpidfile.cpp.
void G::PidFile::init | ( | const Path & | pid_file_path | ) |
Used after default construction.
Definition at line 46 of file gpidfile.cpp.
G::Path G::PidFile::path | ( | ) | const |
Returns the path as supplied to the constructor or init().
Definition at line 104 of file gpidfile.cpp.