it-swarm.com.de

Findet die PID des Prozesses, der einen Port unter Windows verwendet

Mein Service stürzt beim Start mit dem Klassiker ab:

Java.rmi.server.ExportException: Listen failed on port: 9999

Wie finde ich den Prozess, um ihn zu töten?

78
Thomas

Öffnen Sie einfach eine Befehls-Shell und geben Sie Folgendes ein: (Ihr Port lautet 123456)

netstat -a -n -o | find "123456"

Sie werden alles sehen, was Sie brauchen

Die Header sind:

 Proto  Local Address          Foreign Address        State           PID
 TCP    0.0.0.0:37             0.0.0.0:0              LISTENING       1111
177
Thomas

Findet die PID eines Prozesses, der einen Port unter Windows verwendet (z. B. Port: "9999")
netstat -aon | find "9999" 

-a Zeigt alle Verbindungen und Abhörports an.

-o Zeigt die mit jeder Verbindung verknüpfte Eigentümerprozess-ID an.

-n Zeigt Adressen und Portnummern in numerischer Form an.

Ausgabe:
TCP 0.0.0.0:9999 0.0.0.0:0 LISTENING 15776

Dann töte den Prozess per PID taskkill /F /PID 15776

/F - Legt fest, dass der oder die Prozesse zwangsweise beendet werden.

Hinweis: Möglicherweise benötigen Sie eine zusätzliche Berechtigung (Ausführen von Admin), um bestimmte Prozesse abzubrechen.

68
Andrew

Nach einigem Fummeln mit einem Skript kam ich zu dieser Aktion. Kopieren Sie und speichern Sie es in einer .bat-Datei:

FOR /F "usebackq tokens=5" %%i IN (`netstat -aon ^| find "3306"`) DO taskkill /F /PID %%i

Ändern Sie 'find "3306" "in der Portnummer, die frei sein muss. Führen Sie dann die Datei als admin aus. Dadurch werden alle auf diesem Port ausgeführten Prozesse beendet

4
Quispie

Wenn Sie dies programmgesteuert ausführen möchten, können Sie einige der folgenden Optionen in einem PowerShell-Skript verwenden:

$processPID =  $($(netstat -aon | findstr "9999")[0] -split '\s+')[-1]
taskkill /f /pid $processPID

Jedoch; Beachten Sie, dass je genauer Sie sein PID-Ergebnis sein können. Wenn Sie wissen, auf welchem ​​Host sich der Port befinden soll, können Sie ihn einschränken. netstat -aon | findstr "0.0.0.0:9999" wird nur eine Bewerbung zurückschicken, am wahrscheinlichsten die richtige. Nur die Suche nach der Portnummer kann dazu führen, dass Prozesse zurückgegeben werden, die nur 9999 enthalten, wie zum Beispiel:

TCP    0.0.0.0:9999                        0.0.0.0:0       LISTENING       15776
UDP    [fe80::81ad:9999:d955:c4ca%2]:1900  *:*                             12331

Der wahrscheinlichste Kandidat endet normalerweise zuerst, aber wenn der Prozess beendet ist, bevor Sie Ihr Skript ausführen, erhalten Sie möglicherweise stattdessen die PID 12331 und den falschen Prozess.

4
eFox

Dies hilft, die PID anhand der Portnummer zu finden. 

lsof -i tcp:port_number
2
Mahaveer Jangir

Befehl: netstat -aon | findstr 4723

Ausgabe: TCP 0.0.0.0:4723 0.0.0.0:03 HÖREN 10396

schneiden Sie nun die Prozess-ID "10396" mit dem Befehl for in Windows ab.

Befehl: for/f "tokens = 5"% a in ('netstat -aon ^ | findstr 4723') do @echo% ~ nxa

Ausgabe: 10396

wenn Sie die vierte Anzahl von Werten abschneiden möchten, bedeutet "LISTENING" den Befehl in Windows.

Befehl: for/f "tokens = 4"% a in ('netstat -aon ^ | findstr 4723') do @echo% ~ nxa

ausgabe: HÖREN

Ich hoffe meine Antwort hilft dir !!

0