Hoe kan ik het huidige proces/de huidige applicatie verwijderen die al aan een poort is toegewezen?
Bijvoorbeeld: localhost:8080
Antwoord 1, autoriteit 100%
Stap 1:
Open cmd.exe (let op: het kan mogelijknodig zijn om het als beheerder uit te voeren, maar dit is niet altijd nodig), voer dan het onderstaande commando uit:
netstat -ano | findstr :<PORT>
(Vervang <PORT>
door het gewenste poortnummer, maar behoud de dubbele punt)
Het rood omcirkelde gebied toont de PID (proces-ID). Zoek de PID van het proces dat de gewenste poort gebruikt.
Stap 2:
Voer vervolgens het volgende commando uit:
taskkill /PID <PID> /F
(Deze keer geen dubbele punt)
Ten slotte kunt u controleren of de bewerking is gelukt of niet door de opdracht in “Stap 1” opnieuw uit te voeren. Als het succesvol was, zou u geen zoekresultaten meer moeten zien voor dat poortnummer.
Antwoord 2, autoriteit 9%
Stap 1 (hetzelfde is in geaccepteerde antwoordgeschreven door KavinduWije):
netstat -ano | findstr :yourPortNumber
Wijzig in stap 2 in:
tskill typeyourPIDhere
Opmerking: taskkill
werkt niet in een of andere git bash-terminal
Antwoord 3, autoriteit 8%
Met standaardtools van Windows 10:
- Stap één:
Open Windows PowerShell als beheerder
- Stap twee:
Vind PID (ProcessID) voor poort 8080:
netstat -aon | findstr 8080
TCP 0.0.0.0:8080 0.0.0.0:0 LUISTER 77777
- Stap drie:
Dood het zombieproces:
taskkill /f /pid 77777
waarbij “77777” uw PID is
Antwoord 4, autoriteit 7%
Ik weet dat dat een heel oude vraag is, maar ik vond het een vrij gemakkelijk te onthouden, snel commando om apps die poort gebruiken te doden.
Vereisten: [email protected]^-versie
npx kill-port 8080
Je kunt hier ook meer lezen over kill-port: https://www.npmjs.com /package/kill-port
Antwoord 5, autoriteit 6%
Als je GitBash gebruikt
Stap één:
netstat -ano | findstr :8080
Stap twee:
taskkill /PID typeyourPIDhere /F
(/F
beëindigt het proces krachtig)
Antwoord 6, autoriteit 3%
Er zijn twee manieren om de processen te beëindigen
Optie 01 – Eenvoudigste en gemakkelijkste
Vereiste: [email protected]^-versie
Open de opdrachtprompt als beheerder en geef de volgende opdracht met de poort (hier is de poort 8080)
npx kill-port 8080
Optie 02 – Meest gebruikt
- Stap 01
Open de Windows-opdrachtprompt als beheerder
- Stap 02
Vind de PID van de poort die je wilt doden met het onderstaande commando: Hier is poort 8080
netstat -ano|findstr "PID :8080"
TCP 0.0.0.0:8080 0.0.0.0:0 LUISTEREN 18264
- Stap 03
Dood de PID die je hierboven hebt ontvangen met het onderstaande commando (in mijn geval is PID 18264)
taskkill /PID 18264 /f
Antwoord 7, autoriteit 3%
Als u het poortnummer al weet, is het waarschijnlijk voldoende om een softwarebeëindigingssignaal naar het proces te sturen (SIGTERM):
kill $(lsof -t -i :PORT_NUMBER)
Antwoord 8, autoriteit 2%
Voor gebruik in de opdrachtregel:
for /f "tokens=5" %a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %a
Voor gebruik in bat-bestand:
for /f "tokens=5" %%a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %%a
Antwoord 9, autoriteit 2%
Eenvoudige CMD werkt bij mij. Makkelijk te onthouden
zoek het poortnummer dat je wilt doden en voer de onderstaande cmd uit
npx kill-port 8080
Na voltooiing van de poort wordt gestopt en krijg je dit bericht
npx: installed 3 in 13.796s
Process on port 8080 killed
Antwoord 10, autoriteit 2%
In Windows PowerShellversie 1 of hoger om een proces op poort 3000 te stoppen, typt u:
Stop-proces (,(netstat -ano | findstr :3000).split() | foreach {$[$.length-1]}) -Force
Zoals gesuggereerd door @morganpdx is hier een meer PowerShell-achtige, betere versie:
Stop-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess -Force
Antwoord 11
Open opdrachtprompt en geef onderstaande opdracht uit
netstat -ano|findstr "PID :8888"
Uitvoer toont het proces-ID dat de poort in beslag neemt
Geef onderstaande opdracht uit om de PID te doden
taskkill /pid 8912 /f
U ontvangt de uitvoer zoals hieronder
SUCCESS: The process with PID 8860 has been terminated.
Antwoord 12
Voor Windows-gebruikers kunt u de tool CurrPortsgebruiken om poorten onder gemakkelijk te gebruiken:
Antwoord 13
Als je PowerShell op Windows kunt gebruiken, heb je alleen nodig:
Get-Process -Id (Get-NetTCPConnection -LocalPort "8080").OwningProcess | Stop-Process
Antwoord 14
Ik draaide zookeeper op Windows en kon ZooKeeperniet stoppen op 2181 port met behulp van zookeeper-stop.sh, dus probeerde deze dubbele schuine streep “//” -methode om taken uit te voeren. Het werkte
1. netstat -ano | findstr :2181
TCP 0.0.0.0:2181 0.0.0.0:0 LISTENING 8876
TCP [::]:2181 [::]:0 LISTENING 8876
2.taskkill //PID 8876 //F
SUCCESS: The process with PID 8876 has been terminated.
Antwoord 15
Als je Windows Terminalgebruikt, dan proces misschien iets minder vervelend.
Ik gebruik Windows Terminal en kill PID
werkt prima voor mij om processen op de poort te doden, aangezien de nieuwe Windows Terminal bepaalde bash-commando’s ondersteunt. Bijvoorbeeld: kill 13300
Dus het volledige proces ziet er als volgt uit-
- Windows-terminal openen
- Typ de volgende opdracht om de processen weer te geven die worden uitgevoerd op de poort die u wilt uitschakelen.
netstat -ano | findstr :PORT
- Typ het volgende om het proces te beëindigen.
kill PID
Bijvoorbeeld:
PS C:\Users\username> netstat -ano | findstr :4445
TCP 0.0.0.0:4445 0.0.0.0:0 LISTENING 7368
TCP [::]:4445 [::]:0 LISTENING 7368
PS C:\Users\username> kill 7368
PS C:\Users\username> netstat -ano | findstr :4445
PS C:\Users\username>
Zie toen ik de eerste opdracht typte om processen op de poort weer te geven, deze leeg terugkwam. Dat betekent dat alle processen nu worden afgebroken.
Update: kill
is een alias voor Stop-proces. Bedankt, @FSCKur voor het laten weten.
Antwoord 16
Voer cmd uit als beheerder. Typ dan deze code daar.
netstat -ano | findstr :<8080>
Dan kunt u zien dat de PID op uw poort wordt uitgevoerd. Kopieer vervolgens dat PID-nummer. ( PID is een uniek nummer dat helpt bij het identificeren van een hardwareproduct of een geregistreerd softwareproduct.) En typ hieronder de coderegel en druk op enter.
taskkill /PID <Enter the copied PID Number> /F
Antwoord 17
Laten we automatiseren!
Als je net als ik vaak met dit probleem te maken krijgt, maak dan een .bat-bestand en voer het uit om het proces te beëindigen.
maak een bat-bestand “killport.bat”
set /P port="Enter port : "
echo showing process running with port %port%
netstat -ano|findstr "PID :%port%"
set /P pid="Enter PID to kill : "
taskkill /pid %pid% /f
set /P exit="Press any key to exit..."
Voer dit bestand uit door te dubbelklikken en
- Voer poortnummer in (dan wordt het proces met PID weergegeven)
- Voer PID in om te doden
Gereed
(Optioneel)
Stel in op padomgeving zodat u dit bestand overal kunt openen.
Hoogstwaarschijnlijk weet je hoe je een nieuw pad aan env kunt toevoegen. Maar hier is hoe als je dat niet doet
Stap 1 van 4
Zoek ENV in startmenu
Stap 2 van 4
Selecteer omgevingsvariabelen
Stap 3 van 4
Selecteer ‘pad’ en klik op de knop Bewerken
Stap 4 van 4
Klik op ‘Nieuw’ om het pad toe te voegen waar het .bat-bestand is opgeslagen. Omdat ik het heb opgeslagen in de map ‘../Documents/bats’, voeg ik dit pad toe. Uw pad hangt af van waar u dit bestand opslaat.
Open CMD en test. Onthoud dat je bestandsnaam het woord is om dit bestand uit te voeren. Aangezien ik het .bat-bestand heb opgeslagen als ‘killport.bat’ => ‘killport’ is het woord om het uit te voeren.
als je geniet!
deel anders hier hoe je het hebt gedaan
Antwoord 18
U kunt dit doen door een bat-bestand uit te voeren:
@ECHO OFF
FOR /F "tokens=5" %%T IN ('netstat -a -n -o ^| findstr "9797" ') DO (
SET /A ProcessId=%%T) &GOTO SkipLine
:SkipLine
echo ProcessId to kill = %ProcessId%
taskkill /f /pid %ProcessId%
PAUSE
Antwoord 19
Als je het wilt doen met Python: check Is het mogelijk in Python om het proces dat luistert op een specifieke poort, bijvoorbeeld 8080, te beëindigen?
Het antwoord van Smunkwerkt goed. Ik herhaal zijn code hier:
from psutil import process_iter
from signal import SIGTERM # or SIGKILL
for proc in process_iter():
for conns in proc.connections(kind='inet'):
if conns.laddr.port == 8080:
proc.send_signal(SIGTERM) # or SIGKILL
continue
Antwoord 20
de eerste stap
netstat -vanp tcp | grep 8888
voorbeeld
tcp4 0 0 127.0.0.1.8888 *.* LISTEN 131072 131072 76061 0
tcp46 0 0 *.8888 *.* LISTEN 131072 131072 50523 0
de tweede stap: vind je PID’s en dood ze
in mijn geval
sudo kill -9 76061 50523
Antwoord 21
netstat -ano | findstr :PORT
kill PI
Antwoord 22
Eenregelige oplossing met GitBash:
tskill `netstat -ano | grep LISTENING | findstr :8080 | sed -r 's/(\s+[^\s]+){4}(.*)/\1/'`
Vervang 8080door de poort waar uw server naar luistert.
Als je het vaak moet gebruiken, probeer dan aan je ~/.bashrc
de functie toe te voegen:
function killport() {
tskill `netstat -ano | findstr LISTENING | findstr :$1 | sed -r 's/^(\s+[^\s]+){4}(\d*)$/\1/'`
}
en voer gewoon
. uit
killport 8080
Antwoord 23
Hier is een script om het in WSL2 te doen
PIDS=$(cmd.exe /c netstat -ano | cmd.exe /c findstr :$1 | awk '{print $5}')
for pid in $PIDS
do
cmd.exe /c taskkill /PID $pid /F
done
Antwoord 24
We kunnen dit voorkomen door IIS eenvoudig opnieuw te starten met het onderstaande commando:
IISRESET