chiark / gitweb /
config: Some new options
[hippotat.git] / hippotatd
index a235929..1865dad 100755 (executable)
--- a/hippotatd
+++ b/hippotatd
@@ -25,7 +25,7 @@
 #    the file AGPLv3+CAFv2.  If not, email Ian Jackson
 #    <ijackson@chiark.greenend.org.uk>.
 
-
+#@ sys.path.append(@PYBUILD_INSTALL_DIR@)
 from hippotatlib import *
 
 import os
@@ -378,6 +378,8 @@ def daemonise():
     daemonic_reactor = (twisted.internet.interfaces.IReactorDaemonize
                         .providedBy(reactor))
     if daemonic_reactor: reactor.beforeDaemonize()
+    if opts.pidfile is not None:
+      pidfile_h = open(opts.pidfile, 'w')
     rfd, wfd = os.pipe()
     childpid = os.fork()
     if childpid:
@@ -395,14 +397,14 @@ def daemonise():
     grandchildpid = os.fork()
     if grandchildpid:
       # we are the intermediate child
+      if opts.pidfile is not None:
+        print(grandchildpid, file=pfh)
+        pfh.close()
       os._exit(0)
 
     mypid = os.getpid()
-    if opts.pidfile is not None:
-      pfh = open(opts.pidfile, 'w')
-      print(mypid, file=pfh)
-      pfh.close()
-
+    pfh.close()
+                                                                        
     logger = subprocess.Popen(['logger','-d',
                                '-t','hippotat(stderr)',
                                '--id=%d' % mypid,