[#3] Add some correction to handle this properly

This commit is contained in:
Joshua Boniface 2018-06-25 23:12:56 -04:00
parent d0dc923d92
commit ac2b3c464c
1 changed files with 6 additions and 5 deletions

11
pvcd.py
View File

@ -142,7 +142,7 @@ def zk_listener(state):
zk_conn.add_listener(zk_listener)
# Cleanup function
def cleanup(signum, frame):
def cleanup():
ansiiprint.echo('Terminating daemon', '', 'e')
# Set stop state in Zookeeper
zk_conn.set('/nodes/{}/daemonstate'.format(myhostname), 'stop'.encode('ascii'))
@ -150,8 +150,6 @@ def cleanup(signum, frame):
zk_conn.close()
# Stop keepalive thread
stopKeepaliveTimer(update_timer)
# Exit
sys.exit(0)
# Flush function
def flush():
@ -159,15 +157,18 @@ def flush():
this_node.flush()
# Shutdown function
def dshutdown():
def dshutdown(signum, frame):
ansiiprint.echo('Flushing this node', '', 'e')
flush()
ansiiprint.echo('NOTE: This node must be unflushed by the administrator after daemon startup', '', 'i')
cleanup()
sys.exit(0)
# Reload shutdown function
def dreload():
def dreload(signum, frame):
cleanup()
python = sys.executable
os.execl(python, python, *sys.argv)
# Handle signals gracefully
signal.signal(signal.SIGTERM, dshutdown)