Почему netstat не завершает работу, если вы не укажете флаг n?
Джаред Бич
2
@JaredBeach - он ожидает обратного разрешения DNS-имен, поэтому в конечном итоге он завершится после истечения времени ожидания. Если это зависает на внутренних IP-адресах, значит, проблема связана с вашими локальными DNS-серверами.
Стив Фридл
7
Если вы хотите сделать это программно, вы можете использовать некоторые из предоставленных вам параметров в сценарии PowerShell следующим образом:
Тем не мение; имейте в виду, что чем точнее вы можете быть, тем точнее будет ваш результат PID. Если вы знаете, на каком хосте должен быть порт, вы можете значительно сузить его. netstat -aon | findstr "0.0.0.0:9999"вернет только одно приложение и, скорее всего, правильное. Поиск только по номеру порта может привести к возврату процессов, которые только присутствуют 9999в нем, например:
Наиболее вероятный кандидат обычно оказывается первым, но если процесс завершился до того, как вы запустили свой скрипт, вы можете вместо этого получить PID 12331 и убить не тот процесс.
Поработав со сценарием, я пришел к этому действию. Скопируйте и сохраните его в файле .bat:
FOR /F "usebackq tokens=5" %%i IN (`netstat -aon ^| find "3306"`) DO taskkill /F /PID %%i
Измените "найти" 3306 "в номере порта, который должен быть свободным. Затем запустите файл от имени администратора. Это убьет все процессы, запущенные на этом порту.
Ответы:
Просто откройте командную оболочку и введите (например, ваш порт - 123456):
Вы увидите все необходимое.
Заголовки:
источник
nestat -aon | findstr 123456
Найдите PID процесса, который использует порт в Windows (например, порт: «9999»)
-a
Отображает все подключения и порты прослушивания.-o
Отображает идентификатор процесса-владельца, связанный с каждым подключением.-n
Отображает адреса и номера портов в числовой форме.Вывод:
Затем убейте процесс по PID
/F
- Задает принудительное завершение процесса (ов).Примечание: вам может потребоваться дополнительное разрешение (запуск от администратора), чтобы убить некоторые определенные процессы.
источник
Если вы хотите сделать это программно, вы можете использовать некоторые из предоставленных вам параметров в сценарии PowerShell следующим образом:
Тем не мение; имейте в виду, что чем точнее вы можете быть, тем точнее будет ваш результат PID. Если вы знаете, на каком хосте должен быть порт, вы можете значительно сузить его.
netstat -aon | findstr "0.0.0.0:9999"
вернет только одно приложение и, скорее всего, правильное. Поиск только по номеру порта может привести к возврату процессов, которые только присутствуют9999
в нем, например:Наиболее вероятный кандидат обычно оказывается первым, но если процесс завершился до того, как вы запустили свой скрипт, вы можете вместо этого получить PID 12331 и убить не тот процесс.
источник
Поработав со сценарием, я пришел к этому действию. Скопируйте и сохраните его в файле .bat:
Измените "найти" 3306 "в номере порта, который должен быть свободным. Затем запустите файл от имени администратора. Это убьет все процессы, запущенные на этом порту.
источник
Команда:
Вывод:
Теперь вырежьте идентификатор процесса «10396» с помощью
for
команды в Windows.Команда:
Вывод:
10396
Если вы хотите вырезать 4-е число в значении, значит «ПРОСЛУШИВАНИЕ», тогда команда в Windows.
Команда:
Вывод:
ПРОСЛУШИВАНИЕ
источник
Это помогает найти PID по номеру порта.
источник
'lsof' is not recognized as an internal or external command.
PowerShell (Core-совместимый) однострочный для упрощения сценариев копирования:
Вывод:
Тот же код, удобный для разработчиков:
источник