В MacOSX я использую Packer для создания коробки Vagrant, поэтому мне нужно постоянно поднимать ее и разбирать. Я пытаюсь "бродить" и получаю стандартную ошибку, потому что порт уже используется:
«Vagrant не может перенаправить указанные порты на этой виртуальной машине, так как они могут столкнуться с каким-либо другим приложением, которое уже прослушивает эти порты. Перенаправленный порт на 8080 уже используется на хост-машине».
Решение кажется достаточно простым: мне просто нужно определить процесс, который удерживает порт 8080 открытым, и убить этот процесс, верно? Это не так просто.
Если я запустил команду:
nmap localhost -p 8080
Я получаю следующий вывод:
PORT STATE SERVICE
8080/tcp open http-proxy
Если я запустил следующую команду:
top -o prt
Самый высокий порт в использовании в 1360 году
Если я запустил следующую команду:
netstat -tulpn | grep :8080
Я получаю:
netstat: n: unknown or uninstrumented protocol
Если я запустил следующую команду:
lsof -i :8080
Я не получаю вывода
Если я перезапущу свой компьютер, порт теперь доступен, и я могу теперь «бродить».
Как я могу убить любой процесс, использующий порт 8080, чтобы я мог бродить, не перезагружая свой компьютер?
источник
sudo lsof -n -i4TCP:8080
подобрать процессы, принадлежащие root.Быстрое и быстрое решение:
lsof -n -i4TCP:8080
PID
это второе поле. Затем убейте этот процесс:kill -9 PID
Менее быстрое, но постоянное решение
Перейти к
/usr/local/bin/
(можно использовать command + shift + g в Finder)Создайте файл с именем
stop
. Вставьте в него приведенный ниже код:#!/bin/bash touch temp.text lsof -n -i4TCP:$1 | awk '{print $2}' > temp.text pidToStop=`(sed '2q;d' temp.text)` > temp.text if [[ -n $pidToStop ]] then kill -9 $pidToStop echo "Congrates!! $1 is stopped." else echo "Sorry nothing running on above port" fi rm temp.text
chmod 755 stop
stop 8888
(или любой порт)источник
chmod 755 stop
.Если принятый выше ответ не сработал, попробуйте следующее решение. Вы можете использовать его для порта 8080 или для любых других портов.
Замените 3000 любым нужным портом. Выполните команду ниже, чтобы убить этот процесс.
PID - это идентификатор процесса, который нужно убить.
Ниже приведен вывод команд в Терминале Mac.
источник
Чтобы написать сценарий:
-t
Аргумент делает вывод LSOF «скупой» , что означает , что она только возвращает PID.источник
Мне нужно было запустить эту команду
Тогда я получил
показать, какая служба использует PID
Тогда я получил это
Чтобы удалить агент веб-безопасности cisco, запустите
кредиты: http://tobyaw.livejournal.com/315396.html
источник
Это может быть Cisco AnyConnect. Проверьте, существует ли /Library/LaunchDaemons/com.cisco.anyconnect.vpnagentd.plist. Затем выгрузите его с помощью launchctl и удалите из / Library / LaunchDaemons
источник
Выполнив указанную выше команду, вы можете увидеть, какие все задания выполняются.
Введите PID (идентификационный номер процесса), чтобы завершить / убить экземпляр.
источник
Вы также можете использовать Activity Monitor для идентификации и выхода из процесса, использующего порт.
источник
Запустите:
nmap -p 8080 localhost
(Установите nmap с MacPorts или Homebrew, если у вас его еще нет в вашей системе)Бегать:
ps -ef | grep http-proxy
Выполнить:
ps -ef 640
(замените 501 своим UID)Порт 8080 в mac osx используется чем-то, установленным с XCode SDK
источник
Используйте следующую команду:
lsof -n -i4TCP:8080 | awk '{print$2}' | xargs kill -9
Идентификатор процесса порта 8080 будет выбран и принудительно уничтожен с использованием
kill -9
.источник
попробуйте netstat
если ваш netstat не поддерживает -p, используйте lsof
Для Centos 7 используйте
источник