# File lib/rbot/ircbot.rb, line 726
  def shutdown(message = nil)
    debug "Shutting down ..."
    ## No we don't restore them ... let everything run through
    # begin
    #   trap("SIGINT", "DEFAULT")
    #   trap("SIGTERM", "DEFAULT")
    #   trap("SIGHUP", "DEFAULT")
    # rescue => e
    #   debug "failed to restore signals: #{e.inspect}\nProbably running on windows?"
    # end
    message = @lang.get("quit") if (message.nil? || message.empty?)
    if @socket.connected?
      debug "Clearing socket"
      @socket.clearq
      debug "Sending quit message"
      @socket.emergency_puts "QUIT :#{message}"
      debug "Flushing socket"
      @socket.flush
      debug "Shutting down socket"
      @socket.shutdown
    end
    debug "Logging quits"
    @channels.each_value {|v|
      irclog "@ quit (#{message})", v.name
    }
    debug "Saving"
    save
    debug "Cleaning up"
    @plugins.cleanup
    # debug "Closing registries"
    # @registry.close
    debug "Cleaning up the db environment"
    DBTree.cleanup_env
    log "rbot quit (#{message})"
  end