답변:
1 단계:
cmd.exe를 엽니 다 (참고 : 당신이 할 수 관리자 권한으로 실행해야하지만이 항상 필요하지 않습니다), 다음 명령 아래의 실행
netstat -ano | findstr :PORT_NUMBER
(PORT_NUMBER를 원하는 포트 번호로 바꾸고 콜론을 유지하십시오)
빨간색 원으로 표시된 영역은 PID (프로세스 식별자)를 나타냅니다. 원하는 포트를 사용하는 프로세스의 PID를 찾으십시오.
2 단계:
다음 명령을 실행하십시오.
taskkill /PID PID /F
(이번에는 결장 없음)
마지막으로 "1 단계"의 명령을 다시 실행하여 작업의 성공 여부를 확인할 수 있습니다. 성공한 경우 해당 포트 번호에 대한 검색 결과가 더 이상 표시되지 않습니다.
taskkill //PID 12552 //F
taskkill /PID PORT_NUMBER /F
1 단계 (동일한 허용에 대답 쓴 KavinduWije ) :
netstat -ano | findstr :yourPortNumber
2 단계에서 다음으로 변경하십시오.
tskill typeyourPIDhere
참고 : taskkill
일부 git bash 터미널에서 작동하지 않습니다
Windows 10 기본 도구를 사용하는 경우 :
관리자 권한으로 Windows PowerShell 열기
포트 8080에 대한 PID (ProcessID)를 찾으십시오.
netstat -aon | findstr 8080
TCP 0.0.0.0:8080 0.0.0.0:0 듣기 77777
좀비 프로세스를 종료하십시오.
taskkill /f /pid 77777
여기서 "77777"은 PID입니다.
set /p port="Enter port: "
> 입력 포트 FOR /F "tokens=5" %%T IN ('netstat -aon ^| findstr %port% ') DO ( SET /A ProcessId=%%T) &GOTO SkipLine
:SkipLine
-> PID를 변수로 추출 taskkill /f /pid %ProcessId%
-> 작업 종료 cmd /k
-> 창을 열린 상태로 유지
에서 의 Windows PowerShell의 버전 1 이상은 포트 3000 유형의 프로세스를 중지합니다 :
중지 프로세스 (, (netstat -ano | findstr : 3000) .split () | foreach {$ [$ .length-1]})-강제
@morganpdx가 제안한 것처럼 여기에는 PowerShell이 더 좋고 더 나은 버전이 있습니다.
중지 프로세스 -Id (Get-NetTCPConnection -LocalPort 3000) .OwningProcess -Force
'Stop-Process' is not recognized as an internal or external command,
Stop-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess -Force
명령 행에서 사용하기 위해 :
for /f "tokens=5" %a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %a
박쥐 파일에 사용 :
for /f "tokens=5" %%a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %%a
이미 포트 번호를 알고 있다면 소프트웨어 종료 신호를 프로세스 (SIGTERM)로 보내면 충분할 것입니다.
kill $(lsof -t -i :PORT_NUMBER)
lsof -nt -i4TCP:9001
있습니다.
Windows에서 zookeeper를 실행 중이었고 zookeeper-stop.sh를 사용하여 2181 포트에서 ZooKeeper 실행 을 중지 할 수 없었 으므로이 이중 슬래시 "//"방법을 taskkill에 시도했습니다. 그것은 효과가 있었다
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.
당신이 사용하는 경우 Windows 터미널을 다음 죽이는 과정은 좀 덜 지루한 수 있습니다. 나는 터미널 창을 사용하고 kill PID
새로운 Windows 터미널 특정 bash는 명령을 지원하는 나를 포트에서 프로세스를 종료하는 작품 잘. 예를 들면 다음과 같습니다.kill 13300
따라서 전체 프로세스는 다음과 같습니다.
netstat -ano | findstr :PORT
kill PID
예를 들어 :
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>
비어있는 포트에서 프로세스를 나열하기 위해 첫 번째 명령을 입력 한시기를 참조하십시오. 즉, 모든 프로세스가 이제 종료되었습니다.
kill
. 터미널에 제공되는 모든 기능이있는 페이지입니다 . 내가 찾으면 여기에 게시하겠습니다.
Python을 사용하여 수행하려는 경우 : check Python 에서 특정 포트에서 수신 대기중인 프로세스 (예 : 8080)를 종료 할 수 있습니까?
Smunk 의 대답은 훌륭하게 작동합니다. 나는 그의 코드를 여기에서 반복한다.
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
GitBash를 사용하는 한 줄 솔루션 :
tskill `netstat -ano | grep LISTENING | findstr :8080 | sed -r 's/(\s+[^\s]+){4}(.*)/\1/'`
교체 8080 을 서버가 수신하는 포트로 .
자주 사용해야하는 경우 ~/.bashrc
함수에 추가하십시오 .
function killport() {
tskill `netstat -ano | findstr LISTENING | findstr :$1 | sed -r 's/^(\s+[^\s]+){4}(\d*)$/\1/'`
}
간단하게 실행
killport 8080
아래 명령을 사용하여 IIS를 간단히 다시 시작하면이 문제를 피할 수 있습니다.
IISRESET