Cum pentru a elimina actualul proces/aplicație care este deja atribuit un port?
De exemplu: localhost:8080
Etapa 1
Rula linia de comandă ca Administrator. Apoi rulați de mai jos menționează comanda. introduceți numărul de port în yourPortNumber
netstat -ano | findstr :yourPortNumber
Culoarea roșie a încercuit zona prezinta PID (process identifier)
Pasul 2
Apoi executați această comandă după identificarea PID.
taskkill /PID typeyourPIDhere /F
P. S. Rula prima comanda din nou pentru a verifica dacă procesul este încă disponibil sau nu. Te'll obține o linie goală dacă procesul este încheiat cu succes.
Pasul 1 (același lucru este acceptat în răspunde scris de KavinduWije):
netstat -ano | findstr :yourPortNumber
Schimbarea în Pasul 2 pentru a:
tskill typeyourPIDhere
Asta din taskkill
nu este de lucru în unele git bash comanda
Dacă utilizați GitBash
Pasul unu:
netstat -ano | findstr :8080
Pasul doi:
taskkill /PID typeyourPIDhere /F
(/F
cu forța încetează procesul)
cu WINDOWS10 default instrumente:
Pasul 1: Deschideți Windows PowerShell ca Administrator
Pasul 2: Găsi PID (ProcessID) pentru portul 8080:
netstat -aon | findstr 8080
TCP 0.0.0.0:8080 0.0.0.0:0 ASCULTA 77777
Pasul 3: Ucide zombie proces:
taskkill /f /pid 77777
în cazul în care "77777" este PID
În Windows PowerShell versiunea 1 sau mai târziu pentru a opri un proces pe portul 3000 tip:
Stop-Proces (,(netstat -ano | findstr :3000).split() | foreach {$[$.length-1]}) -Vigoare
Cum a sugerat de către @morganpdx aici e mai PowerShell-ish, mai bine versiunea:
Stop-Proces -Id (Ia-NetTCPConnection -LocalPort 3000).OwningProcess -Force
Pentru utilizarea în linia de comandă:
for /f "tokens=5" %a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %a
Pentru utilizarea în bat-fișier:
for /f "tokens=5" %%a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %%a
Am fost difuzate zookeeper @windows, a fost't capabil de a opri zookeeper runnning la 2181 port folosind zookeeper-stop.sh, atât de încercat acest dublu slash "//" metodă de a taskkill. Ea a lucrat
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.
Puteți face cu un fișier bat:
@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
În cazul în care doriți să-l facă folosind python: verifica https://stackoverflow.com/questions/20691258/is-possible-in-python-kill-process-which-is-running-on-specific-port-for-exampl Răspunsul la Smunk funcționează bine. Repet codul lui aici:
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