From cbe129e67722d4c042fd48d045ef43d8796381e8 Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Mon, 13 Jan 2014 00:34:42 +0100 Subject: [PATCH] log line when terminating --- nodemanager.py | 6 +++++- tools.py | 10 ++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/nodemanager.py b/nodemanager.py index 57c96c7..4b030d5 100755 --- a/nodemanager.py +++ b/nodemanager.py @@ -183,6 +183,7 @@ class NodeManager: # set log level if (self.options.verbose): logger.set_level(logger.LOG_VERBOSE) + tools.init_signals() # Load /etc/planetlab/plc_config config = Config(self.options.config) @@ -261,7 +262,10 @@ If this is not the case, please remove the pid file %s. -- exiting""" % (other_p work_duration=int(work_end-work_beg) logger.log('nodemanager: mainloop has worked for %s s - sleeping for %d s'%(work_duration,delay)) time.sleep(delay) - except: logger.log_exc("nodemanager: failed in run") + except SystemExit: + pass + except: + logger.log_exc("nodemanager: failed in run") def run(): logger.log("======================================== Entering nodemanager.py") diff --git a/tools.py b/tools.py index dbfa55f..f081826 100644 --- a/tools.py +++ b/tools.py @@ -9,6 +9,7 @@ import threading import subprocess import shutil import sys +import signal import logger @@ -328,3 +329,12 @@ def command_in_slice (slicename, argv): logger.log("command_in_slice: WARNING: could not find a valid virt") return argv +#################### +def init_signals (): + def handler (signum, frame): + logger.log("Received signal %d - exiting"%signum) + exit(1) + signal.signal(signal.SIGHUP,handler) + signal.signal(signal.SIGQUIT,handler) + signal.signal(signal.SIGINT,handler) + signal.signal(signal.SIGTERM,handler) -- 2.43.0