code: def main(benchexec=None, argv=None):
      
      if sys.version_info < (3,):
          sys.exit('benchexec needs Python 3 to run.')
      # ignore SIGTERM
      signal.signal(signal.SIGTERM, signal_handler_ignore)
      try:
          if not benchexec:
              benchexec = BenchExec()
          sys.exit(benchexec.start(argv or sys.argv))
      except BenchExecException as e:
          sys.exit('Error: ' + str(e))
      except KeyboardInterrupt: # this block is reached, when interrupt is thrown before or after a run set execution
          benchexec.stop()
          util.printOut("\n\nScript was interrupted by user, some runs may not be done.")
docs: The main method of BenchExec for use in a command-line script.
      In addition to calling benchexec.start(argv),
      it also handles signals and keyboard interrupts.
      It does not return but calls sys.exit().
      @param benchexec: An instance of BenchExec for executing benchmarks.
      @param argv: optionally the list of command-line options to use