move http server init; log to file when debugging

This commit is contained in:
2016-04-20 04:08:56 +02:00
parent 8adda2a10f
commit 34299ebb7f
+26 -14
View File
@@ -83,6 +83,14 @@ class NullDevice:
def write(self, s): def write(self, s):
pass 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: class Host:
up = "up" up = "up"
@@ -694,13 +702,14 @@ def closeup():
sock6.close() sock6.close()
except: except:
pass 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: try:
serv.shutdown() serv.shutdown()
if DEBUG > 0: sys.stderr.write("http server stopped\n") if DEBUG > 0: sys.stderr.write("http server stopped\n")
except Exception as e: except Exception as e:
if DEBUG > 0: sys.stderr.write("http server did NOT stop: %s\n" % str(e)) if DEBUG > 0: sys.stderr.write("http server did NOT stop: %s\n" % str(e))
try: try:
serv.server_close() serv.server_close()
except: except:
@@ -893,17 +902,6 @@ sock6.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock6.bind(("", hb_port)) sock6.bind(("", hb_port))
ilist.append(sock6) 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()) #ilist.append(serv.fileno())
if not forground: if not forground:
@@ -918,12 +916,26 @@ if not forground:
os.close(1) os.close(1)
os.close(2) os.close(2)
sys.stdin.close() sys.stdin.close()
if DEBUG > 0:
sys.stdout = LogDevice()
sys.stderr = LogDevice()
else:
sys.stdout = NullDevice() sys.stdout = NullDevice()
sys.stderr = NullDevice() sys.stderr = NullDevice()
os.chdir("/") os.chdir("/tmp")
os.setsid() os.setsid()
os.umask(0) 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() dnsQ = Queue.Queue()
dnsT = threading.Thread(target=dnsupdatethread) dnsT = threading.Thread(target=dnsupdatethread)
dnsT.daemon = True dnsT.daemon = True
@@ -931,7 +943,7 @@ dnsT.start()
running = True running = True
sig = 0 sig = 0
#signal.signal(signal.SIGTERM, handler) signal.signal(signal.SIGTERM, handler)
signal.signal(signal.SIGHUP, handler) signal.signal(signal.SIGHUP, handler)
next = int(now)+15 # 15 seconds time to settle after (re-)start next = int(now)+15 # 15 seconds time to settle after (re-)start