move http server init; log to file when debugging
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user