]> granicus.if.org Git - pdns/commitdiff
implement pid-file configuration switch, defaults to on & document it. Close #2671.
authorbert hubert <bert.hubert@powerdns.com>
Thu, 17 Sep 2015 14:33:04 +0000 (16:33 +0200)
committerbert hubert <bert.hubert@powerdns.com>
Thu, 17 Sep 2015 14:33:04 +0000 (16:33 +0200)
docs/markdown/authoritative/settings.md
docs/markdown/recursor/settings.md
pdns/common_startup.cc
pdns/pdns_recursor.cc
pdns/receiver.cc

index 932d3b7863915fa0a949b7da57ce5392684d0a62..b969015504845489cbf256d5ced5d87c43593960 100644 (file)
@@ -787,3 +787,9 @@ The port where webserver to listen on. See ["Performance Monitoring"](../common/
 * Default: no
 
 If the webserver should print arguments. See ["Performance Monitoring"](../common/logging.md#performance-monitoring).
+
+## `write-pid`
+* Boolean
+* Default: yes
+
+If a PID file should be written. Available since 4.0.
index ec02ddfecfa45359fdd7485a60c4e26fe07a519c..8e6225d1580ec959a92a714ef11f487ff4a0010b 100644 (file)
@@ -617,3 +617,9 @@ recursor is installed on a system. Available since version 3.1.5.
 
 By default, PowerDNS replies to the 'version.bind' query with its version number.
 Security conscious users may wish to override the reply PowerDNS issues.
+
+## `write-pid`
+* Boolean
+* Default: yes
+
+If a PID file should be written. Available since 4.0.
index c510e28a0cfd7afe666fab7d5f1992737064b66a..89d45d4713113c4c5eda12564a0cf3f74038c177 100644 (file)
@@ -54,6 +54,7 @@ void declareArguments()
 {
   ::arg().set("local-port","The port on which we listen")="53";
   ::arg().setSwitch("experimental-dnsupdate","Enable/Disable DNS update (RFC2136) support. Default is no.")="no";
+  ::arg().setSwitch("write-pid","Write a PID file")="yes";
   ::arg().set("allow-dnsupdate-from","A global setting to allow DNS updates from these IP ranges.")="127.0.0.0/8,::1";
   ::arg().setSwitch("forward-dnsupdate","A global setting to allow DNS update packages that are for a Slave domain, to be forwarded to the master.")="yes";
   ::arg().setSwitch("log-dns-details","If PDNS should log DNS non-erroneous details")="no";
index c981885dc1b5c5f3f8ec555e8f2a26832e4baa89..a822fc132d7f6a09b5f33e3de1ea4de7b6b26357 100644 (file)
@@ -470,6 +470,8 @@ int arecvfrom(char *data, int len, int flags, const ComboAddress& fromaddr, int
 string s_pidfname;
 static void writePid(void)
 {
+  if(!::arg().mustDo("write-pid"))
+    return;
   ofstream of(s_pidfname.c_str(), std::ios_base::app);
   if(of)
     of<< Utility::getpid() <<endl;
@@ -2284,6 +2286,7 @@ int main(int argc, char **argv)
     ::arg().setSwitch("non-local-bind", "Enable binding to non-local addresses by using FREEBIND / BINDANY socket options")="no";
     ::arg().set("trace","if we should output heaps of logging. set to 'fail' to only log failing domains")="off";
     ::arg().set("daemon","Operate as a daemon")="yes";
+    ::arg().setSwitch("write-pid","Write a PID file")="yes";
     ::arg().set("loglevel","Amount of logging. Higher is more. Do not set below 3")="4";
     ::arg().set("log-common-errors","If we should log rather common errors")="yes";
     ::arg().set("chroot","switch to chroot jail")="";
index 7eb6e7d0fff694fe12e2f763c7988b567b51d2c8..b729a48b63c4be4191c7650f120a4cb5deee644c 100644 (file)
@@ -130,6 +130,9 @@ static void takedown(int i)
 
 static void writePid(void)
 {
+  if(!::arg().mustDo("write-pid"))
+    return;
+
   string fname=::arg()["socket-dir"]+"/"+s_programname+".pid";
   ofstream of(fname.c_str());
   if(of)