Hoe stop ik het proces dat momenteel een poort op localhost in Windows gebruikt?

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: taskkillwerkt 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 

(/Fbeë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

voer hier de afbeeldingsbeschrijving in

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:

Voer hier de afbeeldingsbeschrijving in


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 PIDwerkt 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: killis 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

  1. Voer poortnummer in (dan wordt het proces met PID weergegeven)
  2. 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

voer hier de afbeeldingsbeschrijving in

Stap 2 van 4

Selecteer omgevingsvariabelen

voer hier de afbeeldingsbeschrijving in

Stap 3 van 4

Selecteer ‘pad’ en klik op de knop Bewerken

voer hier de afbeeldingsbeschrijving in

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.

voer hier de afbeeldingsbeschrijving in

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.

voer hier de afbeeldingsbeschrijving in
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 ~/.bashrcde 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

LEAVE A REPLY

Please enter your comment!
Please enter your name here

eighteen + five =

Other episodes