| Return Type | Function name | Arguments |
|---|---|---|
| void | Demonize | (void) |
Declared in file: hzProcess.h
Defined in file : hzProcess.cpp
Function Logic:
Function body:
void Demonize (void)
{
static bool bBeenHere = false ;
if (bBeenHere)
{
std::cerr << "Attempt to call Demonize more than once" << std::endl ;
return ;
}
bBeenHere = true ;
pid_t pid ;
pid_t sid ;
pid = fork();
if (pid < 0)
{
std::cerr << "Parent [" << getpid() << "] begets crap PID [" << pid << "] - exiting" << std::endl ;
exit(EXIT_FAILURE);
}
if (pid > 0)
{
std::cout << "Exiting parent [" << getpid() << "] starting [" << pid << "]" << std::endl ;
exit(EXIT_SUCCESS);
}
umask(0);
sid = setsid();
if (sid < 0)
{
std::cout << "Parent [" << getpid() << "] begets bad SID of [" << sid << "]" << std::endl ;
exit(EXIT_FAILURE);
}
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
}