E-MailRelay
src
glib
gdaemon.h
Go to the documentation of this file.
1
//
2
// Copyright (C) 2001-2024 Graeme Walker <graeme_walker@users.sourceforge.net>
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
39
/// the process umask, etc. The windows implementation does nothing.
40
/// \see G::Process
41
///
42
class
G::Daemon
43
{
44
public
:
45
static
void
detach
() ;
46
///< Detaches from the parent environment. This typically
47
///< involves fork()ing, std::_Exit()ing the parent, and calling
48
///< setsid() in the child. See also G::PidFile.
49
50
static
void
detach
(
const
G::Path
& pid_file ) ;
51
///< Does a detach() but the calling process waits a while
52
///< for the pid file to be created before it exits.
53
54
public
:
55
Daemon
() = delete ;
56
57
private
:
58
static
void
setsid() ;
59
} ;
60
61
#endif
G::Daemon
A static interface for daemonising the calling process.
Definition:
gdaemon.h:43
G::Daemon::detach
static void detach()
Detaches from the parent environment.
Definition:
gdaemon_unix.cpp:49
G::Path
A Path object represents a file system path.
Definition:
gpath.h:82
gexception.h
gpath.h
gpidfile.h
G
Low-level classes.
Definition:
garg.h:36
Generated by
1.9.3