it-swarm.com.ru

Как убить процесс в настоящее время, используя порт на локальном хосте в Windows?

Как удалить текущий процесс/приложение, которое уже назначено порту?

Например: localhost:8080

234
KavinduWije

Шаг 1  

Запустите командную строку от имени администратора. Затем выполните указанную ниже команду Введите номер вашего порта в yourPortNumber

netstat -ano | findstr: yourPortNumber

Обведенная красным кружком область показывает PID (идентификатор процесса)

Шаг 2

Затем вы выполняете эту команду после определения PID. 

taskKill/PID тип вашегоPID здесь / F

Постскриптум Еще раз введите первую команду, чтобы проверить, доступен ли процесс или нет. Вы получите пустую строку, если процесс успешно завершен.

578
KavinduWije

Шаг 1 (то же самое в принятом ответе написано KavinduWije ):

netstat -ano | findstr :yourPortNumber

Изменить на шаге 2 на:

tskill typeyourPIDhere 

Это так как taskkill не работает в какой-то команде git bash

76
afsarkhan10182

Если вы используете GitBash

Первый шаг:

netstat -ano | findstr :8080

Шаг второй: 

taskkill /PID typeyourPIDhere /F 

(/F принудительно завершает процесс)

62
Ara Yaghsizian

В Windows PowerShell версия 1 или новее, чтобы остановить процесс на порту типа 3000:

Stop-Process (, (netstat -ano | findstr: 3000) .split () | foreach {$ [$ .length-1]}) -Force


В соответствии с предложением @morganpdx, приведем более улучшенную версию PowerShell:

Stop-Process -Id (Get-NetTCPConnection -LocalPort 3000). OwningProcess -Force

18
todorm

Для использования в командной строке:

for /f "tokens=5" %a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %a

Для использования в bat-файле:

for /f "tokens=5" %%a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %%a
10
Mahesh Narwade

В Windows 10 по умолчанию tstrong textools:

1.) Найдите PID (ProcessId), используя порт 8080:

netstat -aon | findstr 8080

TCP 0.0.0.0:8080 0.0.0.0:0 LISTEN 11980

2.) Убить процесс зомби:

taskkill /F /PID 11980

где "11980" - ваш ProcessId

8
DuracellDeMonaco

Если вы уже знаете номер порта, вероятно, будет достаточно отправить сигнал завершения работы программы (SIGTERM):

kill $(lsof -t -i :PORT_NUMBER)
3
Telefonplan

Для пользователей Windows вы можете использовать CurrPorts tool для простого уничтожения используемых портов  enter image description here

3
Zuhair Taha

Если вы хотите сделать это с помощью 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 
2
Kardi Teknomo

Я запускал zookeeper @windows, не смог остановить zookeeper, работающий на порте 2181, используя zookeeper-stop.sh, поэтому попробовал метод двойной косой черты "//" для 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.
1
sandprogrammer

Вы можете сделать, запустив файл 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
1
flopcoder

Этого можно избежать, просто перезапустив IIS с помощью приведенной ниже команды.

IISRESET

0
ksrider 148