VideoTools
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
gdaemon.h
Go to the documentation of this file.
1
//
2
// Copyright (C) 2017 Graeme Walker
3
//
4
// This program is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
8
//
9
// This program is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
// GNU General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with this program. If not, see <http://www.gnu.org/licenses/>.
16
// ===
17
///
18
/// \file gdaemon.h
19
///
20
21
#ifndef G_DAEMON_H
22
#define G_DAEMON_H
23
24
#include "gdef.h"
25
#include "
gexception.h
"
26
#include "
gpidfile.h
"
27
#include "
gpath.h
"
28
#include <sys/types.h>
29
#include <string>
30
31
namespace
G
32
{
33
class
Daemon ;
34
}
35
36
/// \class G::Daemon
37
/// A static interface for daemonising the calling process. Daemonisation
38
/// includes fork()ing, detaching from the controlling terminal, setting the
39
/// process umask, etc. The windows implementation does nothing.
40
/// \see G::Process
41
///
42
class
G::Daemon
43
{
44
public
:
45
G_EXCEPTION( CannotFork ,
"cannot fork"
) ;
46
47
static
void
detach
() ;
48
///< Detaches from the parent environment.
49
///< This typically involves fork()ing,
50
///< _exit()ing the parent, and calling
51
///< setsid() in the child.
52
53
static
void
detach
(
PidFile
& pid_file ) ;
54
///< An overload which allows for a delayed write
55
///< of the new process-id to a file.
56
///<
57
///< A delayed write is useful for network daemons
58
///< which open a listening port. A second instance
59
///< of the process will fail on startup, and should
60
///< not overwrite the pid file of the running
61
///< server. In this situation PidFile::commit()
62
///< should be called just before entering the event
63
///< loop.
64
///<
65
///< Throws PidFile::Error on error.
66
67
private
:
68
Daemon
() ;
69
static
void
setsid() ;
70
} ;
71
72
#endif
73
G::Daemon
A static interface for daemonising the calling process.
Definition:
gdaemon.h:42
gpidfile.h
gexception.h
gpath.h
G::Daemon::detach
static void detach()
Detaches from the parent environment.
Definition:
gdaemon_unix.cpp:32
G::PidFile
A class for creating pid files.
Definition:
gpidfile.h:55
src
glib
gdaemon.h
Generated by
1.8.6