websocket: support SIGTERM as exit signal

Similar to SIGINT that is already supported, support SIGTERM in daemon
and non daemon modes.

Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
This commit is contained in:
Alon Bar-Lev 2013-05-31 22:07:32 +03:00
parent edde5cd0ff
commit 7026e26d68
1 changed files with 7 additions and 3 deletions

View File

@ -214,8 +214,7 @@ Sec-WebSocket-Accept: %s\r
if os.fork() > 0: os._exit(0) # Parent exits
# Signal handling
def terminate(a,b): os._exit(0)
signal.signal(signal.SIGTERM, terminate)
signal.signal(signal.SIGTERM, signal.SIG_IGN)
signal.signal(signal.SIGINT, signal.SIG_IGN)
# Close open files
@ -681,6 +680,10 @@ Sec-WebSocket-Accept: %s\r
self.msg("Got SIGINT, exiting")
sys.exit(0)
def do_SIGTERM(self, sig, stack):
self.msg("Got SIGTERM, exiting")
sys.exit(0)
def top_new_client(self, startsock, address):
""" Do something with a WebSockets client connection. """
# Initialize per client settings
@ -752,8 +755,9 @@ Sec-WebSocket-Accept: %s\r
self.started() # Some things need to happen after daemonizing
# Allow override of SIGINT
# Allow override of signals
signal.signal(signal.SIGINT, self.do_SIGINT)
signal.signal(signal.SIGTERM, self.do_SIGTERM)
signal.signal(signal.SIGCHLD, self.fallback_SIGCHLD)
last_active_time = self.launch_time