t = threading.Thread(target=_fire_and_forget)
t.start()
# run a command asynchronously and log the return value if not 0
# prefix must be a string identifying the code position where the call came from
t = threading.Thread(target=_fire_and_forget)
t.start()
# run a command asynchronously and log the return value if not 0
# prefix must be a string identifying the code position where the call came from
-def fire_and_forget_cmd (cmd, log, prefix):
+def fire_and_forget_cmd (cmd, log_prefix):
+ logger.debug("Firing and forgetting command from %s: %s" % (log_prefix,str(cmd)))
def _fire_and_forget_cmd ():
with open("/dev/null", "w") as fnull:
retcode = subprocess.call(cmd, stdout=fnull, stderr=fnull)
if retcode is not 0:
def _fire_and_forget_cmd ():
with open("/dev/null", "w") as fnull:
retcode = subprocess.call(cmd, stdout=fnull, stderr=fnull)
if retcode is not 0:
- logger.critical("ThreadFunction: Got exception out of handler thread %s: %s" % (self.name, str(e)))
- logger.debug(traceback.format_exc())
+ logger.critical("ThreadFunction: Got exception out of handler thread %s:\n%s" % (self.name, traceback.format_exc()))
- logger.critical("ThreadRepeater: Got exception out of handler thread %s: %s" % (self.name, str(e)))
- logger.debug(traceback.format_exc())
+ logger.critical("ThreadRepeater: Got exception out of handler thread %s:\n%s" % (self.name, traceback.format_exc()))