- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

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:

- gpidfile.h
- gpidfile.cpp