parameters: (p, errors)
docstring: Routine for kill Process p with appropriate logging to screen and logfile
      
      @param p: process to kill
      @type  p: Process
      @param errors: list of error messages from killed process
      @type  errors: [str]
docstring_summary: Routine for kill Process p with appropriate logging to screen and logfile
docstring_tokens: Routine for kill Process p with appropriate logging to screen and logfile
function: def _kill_process(p, errors):
      """
      Routine for kill Process p with appropriate logging to screen and logfile
      
      @param p: process to kill
      @type  p: Process
      @param errors: list of error messages from killed process
      @type  errors: [str]
      """
      try:
          logger.info("ProcessMonitor exit: killing %s", p.name)
          printlog("[%s] killing on exit"%p.name)
          # we accumulate errors from each process so that we can print these at the end
          p.stop(errors)
      except:
          traceback.print_exc()
          logger.error(traceback.format_exc())
function_tokens: def _kill_process ( p , errors ) : try : logger . info ( "ProcessMonitor exit: killing %s" , p . name ) printlog ( "[%s] killing on exit" % p . name ) # we accumulate errors from each process so that we can print these at the end p . stop ( errors ) except : traceback . print_exc ( ) logger . error ( traceback . format_exc ( ) )