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