Выявление активного порта на Windows при настройки xDebug
Не так давно столкнулся с простой проблемой, моя любимая система IDE Eclipse с включенным xDebug, отказалась работать ссылаясь на то, что порт 9000 уже кем-то занят. Я решил быстро узнать, кто же его уже занял, и казалось бы, что проще может быть проще, чем посмотреть netstat и перенаправить его в grep. Но нет, мы же на Windows компьютере.
В общем, в связи с тем, что данная проблема у меня возникла не в первый раз решил быстренько про это написать. Итак, чтобы определить кто-же занял 9000 порт, обычно на любой unix машине мы используем:
netstat –nalp | grep 9000
и вот они, все как на ладони, вместе с PID и названием программы. Однако на Windows машине это вызвало у меня некоторую сложность. Во-первых, нет родного grep (его можно поставить отдельным пакетом), вместо него я пользуюсь конструкцией Select-String в PowerShell. А во-вторых, netstat в Windows выводит информацию несколько по иному, показывая название программы под выводом информации об использованных сетевых подключениях.
Конечно, можно взять PID и потом посмотреть через tasklist, кто именно использует порт. Но зачем когда можно сделать в одну команду:
netstat -abonq | Select-String 9000 -Context 0,1
Что будет аналогично команде на unix/linux:
netstat –nalp | grep 9000 –B 0 –A 1
В итоге мы получим вот такой вывод от выполнения команды в PowerShell:
То есть выведем подходящие результаты показав 0 строк до строчки с результатом и 1 строку после строчки с результатом. Вооружившись этими знаниями управлять Windows машиной и открытыми портами становится гораздо легче.
Комментарии (0)