Warum wird netstat nicht beendet, wenn Sie ihm nicht das Flag n geben?
Jared Beach
2
@JaredBeach - Es wartet auf die inverse Auflösung des DNS-Namens, sodass es nach Ablauf der Zeitüberschreitungen beendet wird. Wenn dies an internen IPs hängt , deutet dies auf ein Problem mit Ihren lokalen DNS-Servern hin.
Steve Friedl
7
Wenn Sie dies programmgesteuert ausführen möchten, können Sie einige der folgenden Optionen in einem PowerShell-Skript wie folgt verwenden:
Jedoch; Beachten Sie, dass Ihr PID-Ergebnis umso genauer ist, je genauer Sie sein können. Wenn Sie wissen, auf welchem Host sich der Port befinden soll, können Sie ihn erheblich eingrenzen. netstat -aon | findstr "0.0.0.0:9999"gibt nur eine Anwendung zurück und höchstwahrscheinlich die richtige. Nur die Suche nach der Portnummer kann dazu führen, dass Sie Prozesse zurückgeben, die nur zufällig darin enthalten sind 9999:
Der wahrscheinlichste Kandidat landet normalerweise zuerst, aber wenn der Prozess beendet ist, bevor Sie Ihr Skript ausführen, erhalten Sie möglicherweise stattdessen die PID 12331 und beenden den falschen Prozess.
Nach einigem Fummeln mit einem Skript kam ich zu dieser Aktion. Kopieren 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 Administrator aus. Alle Prozesse, die an diesem Port ausgeführt werden, werden abgebrochen.
Antworten:
Öffnen Sie einfach eine Befehlsshell und geben Sie ein (sagen Sie, Ihr Port ist 123456):
Sie werden alles sehen, was Sie brauchen.
Die Überschriften sind:
quelle
nestat -aon | findstr 123456
Suchen Sie die PID eines Prozesses, der unter Windows einen Port verwendet (z. B. Port: "9999").
-a
Zeigt alle Verbindungen und Überwachungsports an.-o
Zeigt die jeder Verbindung zugeordnete Prozess-ID an.-n
Zeigt Adressen und Portnummern in numerischer Form an.Ausgabe:
Beenden Sie dann den Prozess per PID
/F
- Gibt an, dass die Prozesse zwangsweise beendet werden sollen.Hinweis: Möglicherweise benötigen Sie eine zusätzliche Berechtigung (vom Administrator ausgeführt), um bestimmte Prozesse abzubrechen
quelle
Wenn Sie dies programmgesteuert ausführen möchten, können Sie einige der folgenden Optionen in einem PowerShell-Skript wie folgt verwenden:
Jedoch; Beachten Sie, dass Ihr PID-Ergebnis umso genauer ist, je genauer Sie sein können. Wenn Sie wissen, auf welchem Host sich der Port befinden soll, können Sie ihn erheblich eingrenzen.
netstat -aon | findstr "0.0.0.0:9999"
gibt nur eine Anwendung zurück und höchstwahrscheinlich die richtige. Nur die Suche nach der Portnummer kann dazu führen, dass Sie Prozesse zurückgeben, die nur zufällig darin enthalten sind9999
:Der wahrscheinlichste Kandidat landet normalerweise zuerst, aber wenn der Prozess beendet ist, bevor Sie Ihr Skript ausführen, erhalten Sie möglicherweise stattdessen die PID 12331 und beenden den falschen Prozess.
quelle
Nach einigem Fummeln mit einem Skript kam ich zu dieser Aktion. Kopieren und speichern Sie es in einer .bat-Datei:
Ändern Sie 'find "3306"' in der Portnummer, die frei sein muss. Führen Sie dann die Datei als Administrator aus. Alle Prozesse, die an diesem Port ausgeführt werden, werden abgebrochen.
quelle
Befehl:
Ausgabe:
Schneiden Sie nun die Prozess-ID "10396" mit dem
for
Befehl in Windows aus.Befehl:
Ausgabe:
10396
Wenn Sie die 4. Zahl abschneiden möchten, bedeutet der Wert "HÖREN", dann Befehl in Windows.
Befehl:
Ausgabe:
HÖREN
quelle
Dies hilft, die PID anhand der Portnummer zu finden.
quelle
'lsof' is not recognized as an internal or external command.
PowerShell (Core-kompatibel) Einzeiler zur Vereinfachung von Copypaste-Szenarien:
Ausgabe:
Gleicher Code, entwicklerfreundlich:
quelle