Как удалить текущий процесс/приложение, которое уже назначено на порт?
Например: localhost:8080
.
Шаг 1
Запустите командную строку от имени администратора. Затем выполните указанную ниже команду. введите номер вашего порта в ваш номер порта.
netstat -ano | findstr :yourPortNumber
Обведенная красным цветом область показывает PID (идентификатор процесса)
Шаг 2
После определения PID вы выполняете эту команду.
taskkill /PID тип вашего PID здесь /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: Откройте Windows Powershell как администратор
Шаг 2: Найти ПИД (процесса) на порт 8080:
netstat -aon | findstr 8080
протокол tcp 0.0.0.0:8080 0.0.0.0:0 слушать 77777
Шаг 3: Убить процесс зомби:
taskkill /f /pid 77777
куда "77777" это ваш ПИД
В оболочка Версия 1 или поздно, чтобы остановить процесс на порту 3000 тип:
стоп-процесс (,(команды netstat -АНО | команда findstr :3000).сплит() | функция foreach {$[$.длина-1]}) -Сила
Как предложил @morganpdx вот более в PowerShell-ишь, лучшую версию:
стоп-процесс -идентификатор (вам-NetTCPConnection -Порту 3000).OwningProcess -Сила
Для использования в командной строке:
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
Если вы уже знаете номер порта, то он, вероятно, достаточно, чтобы послать сигнал прекращения программного обеспечения в процесс (прекращается):
kill $(lsof -t -i :PORT_NUMBER)
Для пользователей Windows, вы можете использовать компактная программа инструмент, чтобы легко убить портов при использовании
Я бежал зверолов @окнами, разве'т способен остановить смотрителя запущена в порт-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.
Можно запустить 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
В случае, если вы хотите сделать это с помощью Python: проверить https://stackoverflow.com/questions/20691258/is-possible-in-python-kill-process-which-is-running-on-specific-port-for-exampl Ответ от 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
Мы можем избежать этого путем простой перезапуск служб IIS, используя команду ниже.
Команду iisreset