X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=nodemanager.py;h=7f5e204874eaf7ac9b8acf875b52ba23693d1ed0;hb=9e6b9c1ea9e020c55c85b433bac47231d63e9ffd;hp=57c96c7d95f6b2a3feaedb27c65244f0bb5d9e76;hpb=c21465827cf7107d0222471afc6bd55d8f46a5d1;p=nodemanager.git diff --git a/nodemanager.py b/nodemanager.py index 57c96c7..7f5e204 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) @@ -202,19 +203,15 @@ If this is not the case, please remove the pid file %s. -- exiting""" % (other_p try: m = __import__(module) logger.verbose("nodemanager: triggering %s.start"%m.__name__) - m.start() + try: m.start() + except: logger.log("WARNING: module %s did not start") self.loaded_modules.append(m) - except ImportError, err: - logger.log_exc ("ERROR while loading module %s - skipping:" % module) - # if we fail to load any of these, it's really no need to go on any further - if module in NodeManager.core_modules: - logger.log("FATAL : failed to load core module %s"%module) - except AttributeError, err: - # triggered when module doesn't have a 'start' method - logger.log_exc ("ERROR while starting module %s - skipping:" % module) - # if we fail to load any of these, it's really no need to go on any further - if module in NodeManager.core_modules: + except: + if module not in NodeManager.core_modules: + logger.log_exc ("ERROR while loading module %s - skipped" % module) + else: logger.log("FATAL : failed to start core module %s"%module) + sys.exit(1) # sort on priority (lower first) def sort_module_priority (m1,m2): @@ -261,7 +258,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")