Proces vinden (en doden) dat poort 3000 blokkeert op Mac

Hoe kan ik processen vinden (en doden) die naar mijn tcp-poorten luisteren/gebruiken? Ik ben op mac os x.

Soms, na een crash of een bug, blokkeert mijn rails app poort 3000. Ik kan het niet vinden met ps -ef...

Wanneer ik

rails server

krijg ik

Adres al in gebruik - bind(2) (Errno::EADDRINUSE)

2014 update:

Om sommige van de onderstaande antwoorden te voltooien: Na het uitvoeren van de kill-commando's is het verwijderen van het pid-bestand misschien nodig rm ~/mypath/myrailsapp/tmp/pids/server.pid

Oplossing
  1. U kunt netstat proberen

     netstat -vanp tcp | grep 3000
  2. Voor macOS El Capitan en nieuwer (of als uw netstat -p niet ondersteunt), gebruik lsof

     sudo lsof -i tcp:3000
  3. Voor Centos 7 gebruik

     netstat -vanp --tcp | grep 3000
Commentaren (14)

U kunt lsof -i:3000 gebruiken.

Dat is "List Open Files". Dit geeft je een lijst van de processen en welke bestanden en poorten ze gebruiken.

Commentaren (2)
lsof -P | grep ':3000' | awk '{print $2}'

Dit geeft je alleen de pid, getest op MacOS.

Commentaren (5)