Ответ 1
Per http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=8081, порт TCP 8081 - это хорошо известный порт для sunproxyadmin, так же, как и 80-й известный порт для http. В этом случае у вас есть процесс node, который прослушивает порт 8081, но lsof пытается быть полезным и показывает для него известный порт. В linux это определяется в /etc/services; Я бы предположил, что OS X похожа.
Изменить 1: Обратите внимание, что за Apple Man Pages, передавая -P
запрещает преобразование номеров портов в имена портов для сетевых файлов.
Ингибирование конверсии может ускорить работу. Это также полезно, когда поиск имени порта работает неправильно.
Это должно заставить lsof не распечатывать запутанный sunproxyadmin для чего-то, что просто происходит с портом, зарегистрированным Sun.
Изменить 2: Второй столбец в ответе (например, 10901 в первой строке, которая вам нужна, и 11957 во второй строке) должен быть идентификатором процесса. Если вы делаете ps aux | grep 10901
(или ps elf | grep [pid]
, так как я не могу вспомнить, что работает правильно для OSX и не имеет его под рукой), вы должны получить что-то вроде:
apache 19783 0,0 0,2 251888 8580? S Oct07 0:00 /usr/sbin/httpd -DFOREGROUND
(или что-то сделать:
nodeuser 10901 0,0 0,2 251888 8580? S Oct07 0:00 node index.js
)
Вы можете убить его с помощью kill -9 10901
(или независимо от того, что был PID), хотя вы можете найти его, если он работает как служба или что.
Это полезно для добавления в ваш профиль bash:
function findbyport()
{
sudo lsof -P -iTCP:$1 -sTCP:LISTEN
}