diff options
Diffstat (limited to 'src/posix')
-rw-r--r-- | src/posix/posixDaemon.cpp | 21 | ||||
-rw-r--r-- | src/posix/signalHandler.hpp | 9 |
2 files changed, 22 insertions, 8 deletions
diff --git a/src/posix/posixDaemon.cpp b/src/posix/posixDaemon.cpp index 4b4f63b..e4a4148 100644 --- a/src/posix/posixDaemon.cpp +++ b/src/posix/posixDaemon.cpp @@ -97,9 +97,13 @@ void DaemonService::chroot(std::string const& chrootdir) AnytunError::throwErr() << "can't change to /"; } +/// TODO: this outstandignly ugly please and i really can't stress the please fix it asap!!!!!!! + +std::ofstream pidFile; // FIXXXME no global variable + void DaemonService::daemonize() { - std::ofstream pidFile; +// std::ofstream pidFile; if(gOpt.getPidFile() != "") { pidFile.open(gOpt.getPidFile().c_str()); if(!pidFile.is_open()) @@ -143,14 +147,15 @@ void DaemonService::daemonize() if(dup(fd) == -1) // stderr cLog.msg(Log::PRIO_WARNING) << "can't open /dev/null as stderr"; } + +// FIXXXXME: write this pid to file (currently pid from posix/signhandler.hpp:77 is used) +// +// if(pidFile.is_open()) { +// pid_t pid = getpid(); +// pidFile << pid; +// pidFile.close(); +// } - if(pidFile.is_open()) { - pid_t pid = getpid(); - pidFile << pid; - pidFile.close(); - } - - setpgid(0, 0); daemonized_ = true; } diff --git a/src/posix/signalHandler.hpp b/src/posix/signalHandler.hpp index a5668b4..3851c78 100644 --- a/src/posix/signalHandler.hpp +++ b/src/posix/signalHandler.hpp @@ -73,8 +73,17 @@ int SigUsr2Handler(int /*sig*/, const std::string& /*msg*/) return 0; } +/// TODO: this outstandignly ugly please and i really can't stress the please fix it asap!!!!!!! +extern std::ofstream pidFile; + void handleSignal() { + if(pidFile.is_open()) { + pid_t pid = getpid(); + pidFile << pid; + pidFile.close(); + } + struct timespec timeout; sigset_t signal_set; int sigNum; |