Public Member Functions | Static Public Member Functions | List of all members
G::PidFile Class Reference

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...
 

Detailed Description

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:

G::PidFile pid_file ;
if( !path.empty() ) pid_file.init(path) ;
G::Root::init("nobody") ;
if( daemon ) G::Daemon::detach( pid_file ) ;
{ G::Root claim_root ; pid_file.commit() ; }
See also
G::Daemon

Definition at line 56 of file gpidfile.h.

Constructor & Destructor Documentation

G::PidFile::PidFile ( const Path pid_file_path)
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 ( )

Destructor.

Calls cleanup() to delete the file.

Definition at line 35 of file gpidfile.cpp.

Member Function Documentation

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().

void G::PidFile::cleanup ( SignalSafe  safe,
const char *  path 
)
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.


The documentation for this class was generated from the following files: