From 34299ebb7fd1779738e4935d0dd6575d9544012b Mon Sep 17 00:00:00 2001 From: Andreas Wrede Date: Wed, 20 Apr 2016 04:08:56 +0200 Subject: [PATCH] move http server init; log to file when debugging --- hbd | 44 ++++++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/hbd b/hbd index 91c4a34..cb7cd8c 100755 --- a/hbd +++ b/hbd @@ -83,6 +83,14 @@ class NullDevice: def write(self, s): pass +class LogDevice: + def __init__(self): + self.fh = open("/tmp/log1","a") + + def write(self, s): + self.fh.write(s) + self.fh.flush() + class Host: up = "up" @@ -694,13 +702,14 @@ def closeup(): sock6.close() except: pass - if DEBUG > 0: sys.stderr.write("asking http server to stop\n") + if DEBUG > 0: sys.stderr.write("asking http server to stop\n") try: serv.shutdown() if DEBUG > 0: sys.stderr.write("http server stopped\n") except Exception as e: if DEBUG > 0: sys.stderr.write("http server did NOT stop: %s\n" % str(e)) + try: serv.server_close() except: @@ -893,17 +902,6 @@ sock6.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock6.bind(("", hb_port)) ilist.append(sock6) - -try: - serv = HttpServer((hbd_host, hbd_port), HttpHandler) -except: - print "failed to start server on %s:%s" % (hbd_host, hbd_port) - sys.exit(1) - -servthread = threading.Thread(target=serv.serve_forever) -servthread.daemon = True -servthread.start() - #ilist.append(serv.fileno()) if not forground: @@ -918,12 +916,26 @@ if not forground: os.close(1) os.close(2) sys.stdin.close() - sys.stdout = NullDevice() - sys.stderr = NullDevice() - os.chdir("/") + if DEBUG > 0: + sys.stdout = LogDevice() + sys.stderr = LogDevice() + else: + sys.stdout = NullDevice() + sys.stderr = NullDevice() + os.chdir("/tmp") os.setsid() os.umask(0) +try: + serv = HttpServer((hbd_host, hbd_port), HttpHandler) +except: + print "failed to start server on %s:%s" % (hbd_host, hbd_port) + sys.exit(1) + +servthread = threading.Thread(target=serv.serve_forever) +servthread.daemon = True +servthread.start() + dnsQ = Queue.Queue() dnsT = threading.Thread(target=dnsupdatethread) dnsT.daemon = True @@ -931,7 +943,7 @@ dnsT.start() running = True sig = 0 -#signal.signal(signal.SIGTERM, handler) +signal.signal(signal.SIGTERM, handler) signal.signal(signal.SIGHUP, handler) next = int(now)+15 # 15 seconds time to settle after (re-)start