Убейте процесс, посмотрев используемый им порт из .BAT - PullRequest
118 голосов
/ 01 июня 2011

В Windows, что может искать порт 8080 и пытаться завершить процесс, который он использует, через файл .BAT?

Ответы [ 15 ]

0 голосов
/ 16 апреля 2018

если вы по системе не можете завершить задачу.попробуйте эту команду

x:> net stop http / y

0 голосов
/ 13 февраля 2018

Вставьте это в командную строку

FOR /F "tokens=5 delims= " %P IN ('netstat -ano ^| find "LISTENING" ^| find ":8080 "') DO (TASKKILL /PID %P)

Если вы хотите использовать его в партии пу %%P вместо %P

0 голосов
/ 12 апреля 2016

Если кто-то ищет скрипт Powershell:

function Search-And-Destroy
{
    param ( [Parameter(Mandatory=$true)][string]$port )
    $lines = netstat -a -o -n | findstr $port
    $ports = @()

    ForEach($line In $lines)
    {
        $res = $($lines -split '\s+')
        $ports += $res[5]
    }

    $ports = $ports | select -uniq

    ForEach($port In $ports)
    {
        echo $(taskkill /F /PID $port)
    }
}

Эта функция в основном выполняет те же функции, что и выше, но она работает в формате сценариев Powershell, поэтому вы можете добавить его в свой профиль Powershell.Чтобы найти местоположение вашего профиля, перейдите на powershell и введите echo $profile

0 голосов
/ 12 июля 2015

Шаги:

  1. Перейдите в папку conf вашего сервера Apache Tomcat . В моем случае это apache-tomcat-7.0.61\conf, так как я использую apache-tomcat-7.0.61

  2. Откройте server.xml и измените номер порта с 8080 на любой другой порт по вашему желанию. Например: 8081,8082,8087 и т. Д.

  3. Теперь перейдите в папку bin и запустите shutdown.bat

  4. Теперь перезапустите сервер через Eclipse.

Теперь ваш проект будет работать без перебоев.

0 голосов
/ 14 ноября 2012

Аналогичен ответу Мерлина, но этот обрабатывает также следующие случаи:

  • Номер порта на самом деле является левой подстрокой другого более длинного номера порта, который вы не ищете.Вы хотите найти точный номер порта, чтобы не убивать случайный, невинный процесс!
  • Код сценария должен иметь возможность запускаться более одного раза и быть корректным каждый раз, не показывая старые, неправильные ответы.

Вот оно:

set serverPid=
for /F "tokens=5 delims= " %%P in ('netstat -a -n -o ^| findstr /E :8080 ') do set serverPid=%%P
if not "%serverPid%" == "" (
  taskkill /PID %serverPid%
) else (
  rem echo Server is not running.
)
...