Как удалить текущий процесс/приложение, которое уже назначено порту?
Например: localhost:8080
Как удалить текущий процесс/приложение, которое уже назначено порту?
Например: localhost:8080
Шаг 1
Запустите командную строку в качестве администратора. Затем запустите следующую команду. введите номер своего порта в yourPortNumber
netstat -ano | findstr: yourPortNumber
Окрашенная область с красным цветом показывает идентификатор PID (идентификатор процесса)
Шаг 2
Затем вы выполните эту команду после идентификации PID.
taskkill/PID typeyourPIDhere/F
P.S. Выполните первую команду еще раз, чтобы проверить, доступен ли процесс или нет. Вы получите пустую строку, если процесс успешно завершен.
Шаг 1 (то же самое в принятом ответе, написанном KavinduWije):
netstat -ano | findstr :yourPortNumber
Изменить шаг 2 на:
tskill typeyourPIDhere
Это, так как taskkill
не работает в команде git bash
Если вы используете GitBash
Первый шаг:
netstat -ano | findstr :8080
Шаг второй:
taskkill /PID typeyourPIDhere /F
(/F
принудительно завершает процесс)
с инструментами по умолчанию WINDOWS10:
Шаг 1: Найти PID (ProcessID) для порта 8080:
netstat -aon | findstr 8080
TCP 0.0.0.0:8080 0.0.0.0:0 LISTEN 11999
Шаг 2: Убить зомби-процесс:
taskkill /f /pid 11999
где "11999" - ваш PID
В Windows PowerShell версии 1 или новее, чтобы остановить процесс на порту 3000 типа:
Stop-Process (, (netstat -ano | findstr: 3000).split() | foreach {$ [$. Length-1]}) -Force
Как предложил @morganpdx здесь больше PowerShell-ish, лучшая версия:
Стоп-процесс -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess -Force
Для использования в командной строке:
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
Если вы уже знаете номер порта, вероятно, будет достаточно отправить сигнал завершения работы программы (SIGTERM):
kill $(lsof -t -i :PORT_NUMBER)
Для пользователей Windows вы можете использовать инструмент CurrPorts для простого уничтожения используемых портов
Я запускал 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.
Если вы хотите сделать это с помощью 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
Вы можете сделать, запустив файл 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
Мы можем избежать этого, просто перезапустив IIS, используя следующую команду.
IISRESET
Работает! Но нам нужно открыть командную строку с правами администратора.
я был убит 1 порт из TaskKill в Windows, мы можем восстановить этот порт? и могу ли я найти какой порт убит???? @Jvkbrdid @gmail.com