From: Gunnar Beutner Date: Fri, 13 Jul 2012 06:30:20 +0000 (+0200) Subject: Make PID path configurable. X-Git-Tag: v0.0.1~257 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e5ae9dd94e0257d149895e22181351fcd5cacaad;p=icinga2 Make PID path configurable. --- diff --git a/doc/icinga2-config.odt b/doc/icinga2-config.odt index b79201e63..a9b8ee584 100644 Binary files a/doc/icinga2-config.odt and b/doc/icinga2-config.odt differ diff --git a/icinga/icingaapplication.cpp b/icinga/icingaapplication.cpp index aa50ea7ca..85d847176 100644 --- a/icinga/icingaapplication.cpp +++ b/icinga/icingaapplication.cpp @@ -28,7 +28,11 @@ using namespace icinga; -const string IcingaApplication::PidFilename = "icinga.pid"; +const string IcingaApplication::DefaultPidPath = "icinga.pid"; + +IcingaApplication::IcingaApplication(void) + : m_PidPath(DefaultPidPath) +{ } /** * The entry point for the Icinga application. @@ -49,8 +53,6 @@ int IcingaApplication::Main(const vector& args) time(&m_StartTime); - UpdatePidFile(PidFilename); - if (args.size() < 2) { stringstream msgbuf; msgbuf << "Syntax: " << args[0] << " [-S] [-L logfile] [-d] [--] "; @@ -155,6 +157,9 @@ int IcingaApplication::Main(const vector& args) icingaConfig->GetProperty("ca", &m_CAFile); icingaConfig->GetProperty("node", &m_Node); icingaConfig->GetProperty("service", &m_Service); + icingaConfig->GetProperty("pidpath", &m_PidPath); + + UpdatePidFile(GetPidPath()); if (!GetCertificateFile().empty() && !GetCAFile().empty()) { /* set up SSL context */ @@ -176,7 +181,7 @@ int IcingaApplication::Main(const vector& args) Logger::Write(LogInformation, "icinga", "Daemonizing."); ClosePidFile(); Utility::Daemonize(); - UpdatePidFile(PidFilename); + UpdatePidFile(GetPidPath()); Logger::UnregisterLogger(consoleLogger); } @@ -234,6 +239,11 @@ string IcingaApplication::GetService(void) const return m_Service; } +string IcingaApplication::GetPidPath(void) const +{ + return m_PidPath; +} + time_t IcingaApplication::GetStartTime(void) const { return m_StartTime; diff --git a/icinga/icingaapplication.h b/icinga/icingaapplication.h index f2e920fe3..b8d5f9062 100644 --- a/icinga/icingaapplication.h +++ b/icinga/icingaapplication.h @@ -34,6 +34,8 @@ public: typedef shared_ptr Ptr; typedef weak_ptr WeakPtr; + IcingaApplication(void); + int Main(const vector& args); static IcingaApplication::Ptr GetInstance(void); @@ -42,16 +44,18 @@ public: string GetCAFile(void) const; string GetNode(void) const; string GetService(void) const; + string GetPidPath(void) const; time_t GetStartTime(void) const; - static const string PidFilename; + static const string DefaultPidPath; private: string m_CertificateFile; string m_CAFile; string m_Node; string m_Service; + string m_PidPath; time_t m_StartTime;