Programing

Windows의 localhost에서 현재 포트를 사용하는 프로세스를 종료하는 방법은 무엇입니까?

lottogame 2020. 3. 4. 08:08
반응형

Windows의 localhost에서 현재 포트를 사용하는 프로세스를 종료하는 방법은 무엇입니까? [닫은]


이미 포트에 할당 된 현재 프로세스 / 응용 프로그램을 제거하는 방법?

예를 들면 다음과 같습니다. localhost:8080


1 단계

관리자 권한으로 명령 줄을 실행하십시오. 그런 다음 아래 언급 명령을 실행하십시오. yourPortNumber에 포트 번호를 입력 하십시오

netstat -ano | findstr : yourPortNumber

빨간색 원으로 표시된 영역에 PID (프로세스 식별자)가 표시됩니다.

2 단계

그런 다음 PID를 식별 한 후이 명령을 실행하십시오.

taskkill / PID 유형 yourPID 여기 / F

PS 첫 번째 명령을 다시 실행하여 프로세스가 여전히 사용 가능한지 확인하십시오. 프로세스가 성공적으로 종료되면 빈 줄이 나타납니다.


1 단계 (동일한 허용에 대답KavinduWije ) :

netstat -ano | findstr :yourPortNumber

2 단계에서 다음으로 변경하십시오.

tskill typeyourPIDhere 

이것은 taskkillgit bash 명령에서 작동하지 않기 때문에


GitBash를 사용하는 경우

1 단계 :

netstat -ano | findstr :8080

2 단계 :

taskkill /PID typeyourPIDhere /F 

( /F강제적으로 프로세스를 종료)


WINDOWS10 기본 도구 사용 :

1 단계 : 포트 8080의 PID (ProcessID) 찾기 :

netstat -aon | findstr 8080

TCP 0.0.0.0:8080 0.0.0.0:0 듣기 11999

2 단계 : 좀비 프로세스 종료

taskkill /f /pid 11999

여기서 "11999"는 PID입니다


에서 의 Windows PowerShell의 버전 1 이상은 포트 3000 유형의 프로세스를 중지합니다 :

중지 프로세스 (, (netstat -ano | findstr : 3000) .split () | foreach {$ [$ .length-1]})-강제


@morganpdx가 제안한 것처럼 여기에는 PowerShell이 ​​더 좋고 더 나은 버전이 있습니다.

중지 프로세스 -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)

Windows 사용자의 경우 CurrPorts 도구를 사용하여 사용중인 포트를 쉽게 종료 할 수 있습니다.여기에 이미지 설명을 입력하십시오


zookeeper @windows를 실행 중이었고 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.

python을 사용하여 수행하려는 경우 : check 특정 포트에서 실행되는 python kill 프로세스에서 가능합니까 (예 : 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 

박쥐 파일을 실행하면됩니다 :

@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

bellow 명령을 사용하여 IIS를 다시 시작하면이 문제를 피할 수 있습니다.

IISRESET

참고 URL : https://stackoverflow.com/questions/39632667/how-to-kill-the-process-currently-using-a-port-on-localhost-in-windows



반응형