Find (og dræb) proces, der låser port 3000 på Mac

Hvordan finder (og dræber) jeg processer, der lytter til/bruger mine tcp-porte? Jeg er på mac os x.

Nogle gange, efter et nedbrud eller en fejl, låser min rails-app port 3000. Jeg kan ikke finde den ved hjælp af ps -ef...

Når jeg gør

rails server

Jeg får

Adresse allerede i brug - bind(2) (Errno::EADDRINUSE)

Opdatering fra 2014:

For at supplere nogle af svarene nedenfor: Efter udførelse af kill-kommandoerne kan det være nødvendigt at slette pid-filen rm ~/mypath/myrailsapp/tmp/pids/server.pid

Løsning
  1. Du kan prøve netstat.

     netstat -vanp tcp | grep 3000
  2. For macOS El Capitan og nyere (eller hvis dit netstat ikke understøtter -p), skal du bruge lsof

     sudo lsof -i tcp:3000
  3. For Centos 7 brug

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

Du kan bruge lsof -i:3000.

Det er "List Open Files". Dette giver dig en liste over processerne og hvilke filer og porte de bruger.

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

Dette giver dig kun pid'en, testet på MacOS.

Kommentarer (5)