#include // pid_t #include // getpid #include #include #include #include "pidfile.h" #include "logger.h" using SSMD::PIDFile; PIDFile::PIDFile() : fileName("/var/run/ssmd.pid") { _create(); } PIDFile::PIDFile(const std::string & file) : fileName(file) { _create(); } PIDFile::~PIDFile() { if (unlink(fileName.c_str())) { logger << "Failed to unlink pid-file: " << strerror(errno) << std::endl; return; } } void PIDFile::_create() { std::ofstream file(fileName.c_str()); if (!file.is_open()) { logger << "Failed to create pid-file: " << strerror(errno) << std::endl; return; } pid_t pid = getpid(); file << pid; logger << "PID: " << pid << std::endl; }