def start
        
        @options[:backend] = eval(@options[:backend], TOPLEVEL_BINDING) if @options[:backend]
        
        server = Server.new(@options[:socket] || @options[:address], 
                            @options[:port],                         
                            @options)
        
        
        server.pid_file                       = @options[:pid]
        server.log_file                       = @options[:log]
        server.timeout                        = @options[:timeout]
        server.maximum_connections            = @options[:max_conns]
        server.maximum_persistent_connections = @options[:max_persistent_conns]
        server.threaded                       = @options[:threaded]
        server.no_epoll                       = @options[:no_epoll] if server.backend.respond_to?(:no_epoll=)
        
        server.daemonize if @options[:daemonize]
        
        server.config
        
        server.change_privilege @options[:user], @options[:group] if @options[:user] && @options[:group]
        
        
        if @options[:rackup]
          server.app = load_rackup_config
        else
          server.app = load_adapter
        end
        
        server.app = Rack::URLMap.new(@options[:prefix] => server.app) if @options[:prefix]
        
        server.app = Stats::Adapter.new(server.app, @options[:stats]) if @options[:stats]
        
        
        server.on_restart { Command.run(:start, @options) }
        server.start
      end