chiark / gitweb /
hippotatd: support --pidfile
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 9 Apr 2017 01:02:31 +0000 (02:02 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 9 Apr 2017 01:02:31 +0000 (02:02 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
hippotatd
hippotatlib/__init__.py

index f4bc551..e3e42fb 100755 (executable)
--- a/hippotatd
+++ b/hippotatd
@@ -391,9 +391,15 @@ def daemonise():
       # we are the intermediate child
       os._exit(0)
 
+    mypid = os.getpid()
+    if opts.pidfile is not None:
+      pfh = open(opts.pidfile, 'w')
+      print(mypid, file=pfh)
+      pfh.close()
+
     logger = subprocess.Popen(['logger','-d',
                                '-t','hippotat(stderr)',
-                               '--id=%d' % os.getpid(),
+                               '--id=%d' % mypid,
                                '-p',opts.syslogfacility + '.err'],
                               stdin=subprocess.PIPE,
                               stdout=subprocess.DEVNULL,
@@ -429,6 +435,11 @@ optparser.add_option('--daemon',
                      action='store_true', dest='daemon', default=False,
                      help='daemonize (and log to syslog)')
 
+optparser.add_option('--pidfile',
+                     nargs=1, type='string',
+                     action='store', dest='pidfile', default=None,
+                     help='write pid to this file')
+
 optparser.add_option('--syslog-facility',
                      nargs=1, type='string',action='store',
                      metavar='FACILITY', dest='syslogfacility',
index 7bdf4ea..bf599e7 100644 (file)
@@ -662,4 +662,4 @@ just `+': all DFLAGs.
 def common_run():
   log_debug(DBG.INIT, 'entering reactor')
   if not _crashing: reactor.run()
-  print('CRASHED (end)', file=sys.stderr)
+  print('ENDED', file=sys.stderr)