fix restart problem
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
# $Id: hbd,v 1.38 2013/07/14 02:25:05 andreas Exp $
|
||||
# Wait for heartbeat messages and act on them (or their absence)
|
||||
#
|
||||
VER = 1.38
|
||||
VER = 1.51
|
||||
|
||||
import time, os, string, sys, socket, atexit, select, SocketServer, getopt, signal, cPickle, smtplib, traceback, urllib
|
||||
|
||||
@@ -500,10 +500,11 @@ def exitcurses():
|
||||
curses.endwin()
|
||||
|
||||
|
||||
class HtmlServer(SocketServer.TCPServer):
|
||||
allow_reuse_address = True
|
||||
#
|
||||
#
|
||||
class HtmlHandler(SocketServer.BaseRequestHandler):
|
||||
allow_reuse_address = True
|
||||
|
||||
|
||||
def buildhead(self, title="Heartbeat", refresh=None):
|
||||
@@ -536,6 +537,7 @@ class HtmlHandler(SocketServer.BaseRequestHandler):
|
||||
|
||||
|
||||
def handle(self):
|
||||
global sig, running
|
||||
headers=[]
|
||||
headers.append("Date: %s" % time.strftime("%a, %d %b %Y %H:%M:%S GMT", time.gmtime(now)))
|
||||
headers.append("Server: hbd")
|
||||
@@ -586,6 +588,13 @@ class HtmlHandler(SocketServer.BaseRequestHandler):
|
||||
res=self.buildhead()
|
||||
res.append("Done")
|
||||
|
||||
elif upar[0] == "/r": # restart
|
||||
res=self.buildhead()
|
||||
res.append("restart request")
|
||||
sig=signal.SIGHUP
|
||||
running=False
|
||||
log("restart request")
|
||||
|
||||
else:
|
||||
code = 404
|
||||
cause = "Not Found"
|
||||
@@ -612,13 +621,9 @@ class HtmlHandler(SocketServer.BaseRequestHandler):
|
||||
|
||||
|
||||
def saveandrestart():
|
||||
if DEBUG: sys.stderr.write("mark 1\n")
|
||||
sock.close()
|
||||
# if DEBUG: sys.stderr.write("mark 2\n")
|
||||
# serv.shutdown() #N.B. dont shutdown() as we don't use serv_forever
|
||||
if DEBUG: sys.stderr.write("mark 3\n")
|
||||
serv.server_close()
|
||||
if DEBUG: sys.stderr.write("mark 4\n")
|
||||
log("restarting")
|
||||
os.execv(sys.argv[0], [sys.argv[0]]+cmdargs)
|
||||
|
||||
@@ -791,7 +796,7 @@ sock.bind(("", hb_port))
|
||||
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||
ilist.append(sock)
|
||||
|
||||
serv = SocketServer.TCPServer((hbd_host, hbd_port), HtmlHandler)
|
||||
serv = HtmlServer((hbd_host, hbd_port), HtmlHandler)
|
||||
ilist.append(serv.fileno())
|
||||
|
||||
if not forground:
|
||||
|
||||
Reference in New Issue
Block a user