# File lib/hydra/runner.rb, line 21
    def initialize(opts = {})
      redirect_output( opts.fetch( :runner_log_file ) { DEFAULT_LOG_FILE } )
      reg_trap_sighup

      @io = opts.fetch(:io) { raise "No IO Object" }
      @verbose = opts.fetch(:verbose) { false }
      @event_listeners = Array( opts.fetch( :runner_listeners ) { nil } )
      @options = opts.fetch(:options) { "" }
      @directory = get_directory

      $stdout.sync = true
      runner_begin

      trace 'Booted. Sending Request for file'
      @io.write RequestFile.new
      begin
        process_messages
      rescue => ex
        trace ex.to_s
        raise ex
      end
    end