# File lib/nanite/agent.rb, line 97
    def run
      Log.init(@identity, @options[:log_path])
      Log.level = @options[:log_level] if @options[:log_level]
      @serializer = Serializer.new(@options[:format])
      @status_proc = lambda { parse_uptime(`uptime 2> /dev/null`) rescue 'no status' }
      pid_file = PidFile.new(@identity, @options)
      pid_file.check
      if @options[:daemonize]
        daemonize(@identity, @options)
        pid_file.write
        at_exit { pid_file.remove }
      end
      @amq = start_amqp(@options)
      @registry = ActorRegistry.new
      @dispatcher = Dispatcher.new(@amq, @registry, @serializer, @identity, @options)
      setup_mapper_proxy
      load_actors
      setup_traps
      setup_queue
      advertise_services
      setup_heartbeat
      at_exit { un_register } unless $TESTING
      start_console if @options[:console] && !@options[:daemonize]
    end