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.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