Frage Finden (und killen) Sie den Prozess Locking Port 3000 auf dem Mac


Wie finde ich Prozesse, die meine tcp-Ports abhören / verwenden? Ich bin auf Mac OS X.

Manchmal, nach einem Absturz oder einem Bug, blockiert meine Rails-App Port 3000. Ich kann es nicht mit ps -ef finden ... Wie finde ich das dumme Ding und töte es, brutal ...?

Wenn es geht

rails server

Ich bekomme

Bereits verwendete Adresse - bind (2) (Errno :: EADDRINUSE)

Update 2014:

Um einige der folgenden Antworten zu vervollständigen: Nach dem Ausführen der Kill-Befehle kann das Löschen der PID-Datei notwendig sein rm ~/mypath/myrailsapp/tmp/pids/server.pid


1054
2017-10-04 12:19


Ursprung


Antworten:


  1. Du kannst es versuchen netstat

    netstat -vanp tcp | grep 3000
    
  2. Zum Mac OS El Capitan und neuer (oder wenn dein netstat nicht unterstützt -p), benutzen lsof

    sudo lsof -i tcp:3000 
    
  3. Zum Centos 7 benutzen

    netstat -vanp --tcp | grep 3000
    

1754
2017-10-04 12:48



Finden:

[sudo] lsof -i :3000

Töten:

kill -9 <PID>

1163
2017-09-09 20:58



Nichts darüber hat für mich funktioniert. Jeder andere mit meiner Erfahrung könnte Folgendes versuchen (arbeitete für mich):

Lauf:

lsof -i :3000 (where 3000 is your current port in use)

Überprüfen Sie dann den Status der gemeldeten PID:

ps ax | grep <PID>

endlich, "beginne damit":

kill -QUIT <PID>

93
2018-03-07 20:24



Sie können verwenden lsof -i:3000.

Das ist "Liste geöffneter Dateien". Dadurch erhalten Sie eine Liste der Prozesse und der von ihnen verwendeten Dateien und Ports.


83
2017-10-04 12:36



Ein Einzeiler, um die PID des Prozesses mit Port 3000 zu extrahieren und zu töten.

lsof -ti:3000 | xargs kill

Das Flag -t entfernt alles außer der PID von der Ausgabe von lsof und macht es so einfach, sie zu töten.


76
2017-08-05 21:03



In deinem .bash_profile, erstellen Sie eine Verknüpfung für terminate der 3000 Prozess:

terminate(){
  lsof -P | grep ':3000' | awk '{print $2}' | xargs kill -9 
}

Dann ruf an $terminate wenn es blockiert ist.


49
2018-05-16 09:17



Verwenden Sie den folgenden Befehl, um einen solchen Prozess zwangsweise zu beenden

lsof -n -i4TCP:3000 

Wobei 3000 die Portnummer ist, unter der der Prozess läuft

Dies gibt die Prozess-ID (PID) zurück und Renn

kill -9 "PID"

Ersetzen Sie PID durch die Nummer, die Sie nach dem Ausführen des ersten Befehls erhalten

For Instance, if I want kill the process running on port 8080


39
2017-12-28 04:21