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