Was kann unter Windows nach Port 8080 suchen und versuchen, den verwendeten Prozess über eine .BAT-Datei abzubrechen?
windows
batch-file
process
kill-process
Mike Flynn
quelle
quelle
Antworten:
Hier ist ein Befehl, mit dem Sie loslegen können:
Wenn Sie mit Ihrer Batch-Datei vertraut sind, entfernen Sie sie
@ECHO
.Beachten Sie, dass Sie dies möglicherweise für verschiedene Betriebssysteme geringfügig ändern müssen. Unter Windows 7 benötigen Sie beispielsweise möglicherweise
tokens=5
anstelle vontokens=4
.Wie das funktioniert
Auf diese Weise können Sie die
command
Ausgabe ausführen und durchlaufen. Jede Zeile wird eingefügt%variable
und kann beliebig oft erweitert werdenotherCommand
, wo immer Sie möchten.%variable
im tatsächlichen Gebrauch kann nur ein einzelner Buchstabe Name haben, z%V
.Auf diese Weise können Sie jede Zeile nach Leerzeichen aufteilen, den 4. Block in dieser Zeile nehmen und ihn
%variable
(in unserem Fall%%P
) einfügen .delims
sieht leer aus, aber dieser zusätzliche Platz ist tatsächlich von Bedeutung.Führen Sie es einfach aus und finden Sie es heraus. Gemäß der Befehlszeilenhilfe werden "Alle Verbindungen und Überwachungsports angezeigt", "Adressen und Portnummern in numerischer Form angezeigt" und "Die jeder Verbindung zugeordnete Prozess-ID angezeigt". Ich habe diese Optionen nur verwendet, da jemand anderes sie vorgeschlagen hat und sie zufällig funktioniert haben :)
Dies nimmt die Ausgabe des ersten Befehls oder Programms (
netstat
) und übergibt sie an ein zweites Befehlsprogramm (findstr
). Wenn Sie dies direkt in der Befehlszeile anstelle einer Befehlszeichenfolge verwenden würden, würden Sie|
stattdessen verwenden^|
.Dies filtert alle Ausgaben, die an sie übergeben werden, und gibt nur Zeilen zurück, die enthalten
:8080
.Dadurch wird eine laufende Aufgabe unter Verwendung der Prozess-ID beendet.
Dies ist in Batch-Dateien erforderlich. Wenn Sie dies an der Eingabeaufforderung tun würden, würden Sie
%P
stattdessen verwenden.quelle
HELP FOR
auf der Kommandozeile eine Menge anderer Möglichkeiten , um zu sehen , dieFOR
Sie geben, und prüfen Sienetstat -?
,findstr /?
undTaskKill /?
noch mehr Hilfe.tokens=4
ist Windows XP, denke ich, undtokens=5
Windows 7. Auch eine gute Idee,/F
um den Kill zu erzwingen.Öffnen Sie die Eingabeaufforderung und führen Sie die folgenden Befehle aus
, hier ist 3116 die Prozess-ID
quelle
Um einen bestimmten Prozess in der Befehlszeile zu finden, verwenden Sie den folgenden Befehl. 8080 ist der vom Prozess verwendete Port
Um den Prozess zu beenden, verwenden Sie den folgenden Befehl. 21424 ist die Prozess-ID
quelle
Durch die Verwendung der Merlyn-Lösung wurden andere Anwendungen wie Firefox beendet. Diese Prozesse verwendeten denselben Port, jedoch nicht als Listener:
z.B:
Sie können diese daher ausschließen, indem Sie dem findstr wie folgt "LISTENING" hinzufügen:
quelle
Gehen Sie wie folgt vor, um alle auf Port 8080 ausgeführten Prozesse aufzulisten.
Führen Sie dann den folgenden Befehl aus, um den Prozess abzubrechen
quelle
Vielen Dank an alle, nur um hinzuzufügen, dass einige Prozesse nicht geschlossen werden, es sei denn, der / F-Force-Schalter wird auch mit TaskKill gesendet. Auch mit / T-Schalter werden alle sekundären Threads des Prozesses geschlossen.
Für Dienste ist es erforderlich, den Namen des Dienstes abzurufen und Folgendes auszuführen:
quelle
Nur zur Vervollständigung:
Ich wollte alle Prozesse beenden, die mit einem bestimmten Port verbunden sind, aber nicht den Prozess, der abhört
Der Befehl (in cmd-Shell) für den Port 9001 lautet:
findstr :
netstat :
Es funktioniert, weil netstat den Quellport, dann den Zielport und dann ESTABLISHED druckt
quelle
Erstellt eine Bat-Datei mit dem folgenden Inhalt, akzeptiert sie die Eingabe für die Portnummer
Klicken Sie abschließend auf "Enter", um den Vorgang zu beenden.
quelle
Wenn Sie den Prozess beenden möchten, der Port 8080 überwacht, können Sie PowerShell verwenden. Kombinieren
Get-NetTCPConnection
Sie einfach Cmdlet mitStop-Process
.Getestet und sollte mit PowerShell 5 unter Windows 10 oder Windows Server 2016 funktionieren. Ich denke jedoch, dass es auch mit älteren Windows-Versionen funktionieren sollte, auf denen PowerShell 5 installiert ist.
Hier ist ein Beispiel:
quelle
Ähnlich wie Merlyns Antwort, aber diese behandelt auch diese Fälle:
Hier ist es:
quelle
Schritte:
Wechseln Sie in den
conf
Ordner Ihres Apache Tomcat- Servers. In meinem Fall ist es so,apache-tomcat-7.0.61\conf
wie ich Apache-Tomcat-7.0.61 verwendeÖffnen Sie
server.xml
die Portnummer und ändern Sie sie nach Ihren Wünschen von 8080 auf einen anderen Port. Zum Beispiel: 8081,8082,8087 usw.Gehen Sie nun zum
bin
Ordner und führen Sie ihn ausshutdown.bat
Starten Sie nun den Server über Eclipse neu.
Jetzt funktioniert Ihr Projekt ohne Unterbrechung.
quelle
Wenn jemand nach einem Powershell-Skript sucht:
Diese Funktion macht im Grunde das, was die oben genannten Funktionen tun, aber sie hat das Powershell-Skriptformat, sodass Sie sie Ihrem Powershell-Profil hinzufügen können. Um den Standort Ihres Profils zu finden, gehen Sie zu Powershell und geben Sie ein
echo $profile
quelle
netstat
Tool.Fügen Sie dies in die Befehlszeile ein
Wenn Sie es in einer Batch-Pu
%%P
anstelle von verwenden möchten%P
quelle
netstat
Tool in andere Sprachen übersetzt wurdeWenn Sie nach System sind, können Sie die Aufgabe nicht beenden. Versuchen Sie diesen Befehl
x:> net stop http / y
quelle