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
+28 -16
View File
@@ -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