Usage
killports [PORT1] [PORT2] ...
Example: killports 3000 5000
Code
#!/Users/eberry/.asdf/shims/ruby
# See https://www.devdungeon.com/content/enhanced-shell-scripting-ruby
require "amazing_print"
def echo_success(message, port, pid=nil)
puts [
"👍🏻",
port.to_s.yellow,
pid.nil? ? nil : pid.to_s.cyan,
message.to_s.white
].compact.join(" ")
end
def echo_failed(message, port, pid=nil)
puts [
"👎🏻",
port.to_s.yellow,
pid.nil? ? nil : pid.to_s.cyan,
message.to_s.red
].compact.join(" ")
end
ARGV.each { |arg|
port = arg.chomp
pid = `lsof -t -i tcp:#{port}`.chomp
if pid.to_i > 0
_result = `sudo kill #{pid}`
if $?.success?
echo_success("killed", port, pid)
else
echo_failed("no such process", port, pid)
end
else
echo_success("was not in use", port)
end
}
if ARGV.empty?
puts "Usage: ".yellow + "killports [PORT1] [PORT2] ..."
end
exit(0)
Top comments (0)