Что в Windows может искать порт 8080 и пытаться убить используемый им процесс с помощью файла .BAT?
windows
batch-file
process
kill-process
Майк Флинн
источник
источник
Ответы:
Вот команда, с которой можно начать:
Когда вы уверены в своем командном файле, удалите
@ECHO
.Обратите внимание, что вам может потребоваться немного изменить это для разных ОС. Например, в Windows 7 вам может понадобиться
tokens=5
вместоtokens=4
.Как это работает
Это позволяет вам выполнять
command
и перебирать его вывод. Каждая строка будет вставлена%variable
и может быть расширенаotherCommand
сколько угодно раз и где угодно.%variable
при фактическом использовании может иметь только однобуквенное имя, например%V
.Это позволяет вам разделить каждую строку на пробелы, взять 4-й кусок в этой строке и вставить его
%variable
(в нашем случае%%P
).delims
выглядит пустым, но это лишнее пространство на самом деле очень важно.Просто запустите и узнайте. Согласно справке командной строки, он «Отображает все соединения и порты прослушивания.», «Отображает адреса и номера портов в числовой форме.» И «Отображает идентификатор процесса-владельца, связанный с каждым подключением.». Я просто использовал эти варианты, так как это предложил кто-то другой, и это сработало :)
Это берет выходные данные первой команды или программы (
netstat
) и передает их во вторую командную программу (findstr
). Если бы вы использовали это непосредственно в командной строке, а не внутри командной строки, вы бы использовали|
вместо^|
.Это фильтрует любой вывод, который ему передается, возвращая только строки, которые содержат
:8080
.Это убивает запущенную задачу с использованием идентификатора процесса.
Это требуется в пакетных файлах. Если бы вы сделали это в командной строке,
%P
вместо этого вы бы использовали .источник
HELP FOR
в командной строке , чтобы увидеть много других вариантов , которыеFOR
дадут вам, а также проверитьnetstat -?
,findstr /?
иTaskKill /?
для еще большей помощи.tokens=4
Я думаю, это Windows XP иtokens=5
Windows 7. Также неплохо было бы/F
принудительно убить.Откройте командную строку и выполните следующие команды
, здесь 3116 - это идентификатор процесса
источник
Чтобы найти конкретный процесс в командной строке, используйте команду ниже, здесь 8080 - это порт, используемый процессом
чтобы убить процесс, используйте команду ниже, здесь 21424 - идентификатор процесса
источник
Использование решения Мерлина привело к прекращению работы других приложений, например firefox. Эти процессы использовали один и тот же порт, но не в качестве слушателя:
например:
Поэтому их можно исключить, добавив "LISTENING" к findstr следующим образом:
источник
Чтобы вывести список всех процессов, запущенных на порту 8080, выполните следующие действия.
Затем, чтобы убить процесс, выполните следующую команду
источник
Спасибо всем, просто чтобы добавить, что некоторые процессы не закроются, если только переключатель / F force не будет отправлен вместе с TaskKill. Также с переключателем / T все вторичные потоки процесса будут закрыты.
Для сервисов необходимо будет получить название сервиса и выполнить:
источник
Создан файл bat с приведенным ниже содержимым, он принимает ввод для номера порта
Наконец, нажмите «Enter» для выхода.
источник
На завершение:
Я хотел убить все процессы, подключенные к определенному порту, но не процесс прослушивания
команда (в оболочке cmd) для порта 9001:
findstr :
netstat :
Это работает, потому что netstat распечатывает исходный порт, затем порт назначения, а затем ESTABLISHED
источник
Если вы хотите убить процесс, который прослушивает порт 8080, вы можете использовать PowerShell. Просто совместите
Get-NetTCPConnection
командлет сStop-Process
.Протестировано и должно работать с PowerShell 5 в Windows 10 или Windows Server 2016. Однако я полагаю, что он также должен работать и в более старых версиях Windows, на которых установлен PowerShell 5.
Вот пример:
источник
Подобно ответу Мерлина, но этот также обрабатывает эти случаи:
Вот:
источник
шаги:
Перейдите в
conf
папку вашего сервера apache tomcat . В моем случае это так,apache-tomcat-7.0.61\conf
как я использую apache-tomcat-7.0.61Откройте
server.xml
и измените номер порта с 8080 на любой другой порт по вашему желанию. Например: 8081,8082,8087 и т. Д.Теперь перейдите в
bin
папку и запуститеshutdown.bat
Теперь перезапустите сервер через eclipse.
Теперь ваш проект будет работать без перебоев.
источник
Если кто-то ищет скрипт Powershell:
Эта функция в основном выполняет то же, что и вышеупомянутые функции, но она находится в формате сценариев Powershell, поэтому вы можете добавить ее в свой профиль Powershell. Чтобы узнать местоположение вашего профиля, перейдите в PowerShell и введите
echo $profile
источник
netstat
инструмента на основе PowerShell .Вставьте это в командную строку
Если вы хотите использовать его в пакетном режиме
%%P
вместо%P
источник
netstat
инструмент переведен на другие языкиесли вы по системе не можете завершить задачу это. попробуйте эту команду
x:> чистая остановка http / y
источник