# File lib/mongrel_cluster/init.rb, line 59
    def start
      read_options
      
      argv = [ "mongrel_rails" ]
      argv << "start"
      argv << "-d"
      argv << "-e #{@options['environment']}" if @options['environment']
      argv << "-a #{@options['address']}"  if @options['address']
      argv << "-c #{@options['cwd']}" if @options['cwd']
      argv << "-o #{@options['timeout']}" if @options['timeout']
      argv << "-t #{@options['throttle']}" if @options['throttle']
      argv << "-m #{@options['mime_map']}" if @options['mime_map']
      argv << "-r #{@options['docroot']}" if @options['docroot']
      argv << "-n #{@options['num_procs']}" if @options['num_procs']
      argv << "-B" if @options['debug']
      argv << "-S #{@options['config_script']}" if @options['config_script']
      argv << "--user #{@options['user']}" if @options['user']
      argv << "--group #{@options['group']}" if @options['group']
      argv << "--prefix #{@options['prefix']}" if @options['prefix']
      cmd = argv.join " "
      
      @ports.each do |port|              
        if @clean && pid_file_exists?(port) && !check_process(port)
          pid_file = port_pid_file(port)        
          log "missing process: removing #{pid_file}"
          chdir_cwd do
            File.unlink(pid_file) 
          end
        end
        
        if pid_file_exists?(port) && check_process(port)
          log "already started port #{port}"         
          next
        end

        exec_cmd = cmd + " -p #{port} -P #{port_pid_file(port)}"
        exec_cmd += " -l #{port_log_file(port)}"
        log "starting port #{port}"          
        log_verbose exec_cmd
        output = `#{exec_cmd}`
        log_error output unless $?.success?
      end
    end