destroy existed port

require 'socket'

def port_in_use?(port)
  begin
    socket = TCPServer.new('localhost', port)
    socket.close
    return false
  rescue Errno::EADDRINUSE
    return true
  end
end

def destroy_port(port)
  raise ArgumentError, 'Invalid port number' unless (1..65535).include?(port)

  if port_in_use?(port)
    system("lsof -i :#{port} | awk 'NR!=1 {print $2}' | xargs kill")
    puts "Port #{port} has been destroyed."
  else
    puts "Port #{port} is not in use."
  end
end

# Example usage:
destroy_port(3000)