Подтвердить что ты не робот

Как я могу убить любой процесс, используя порт 8080, чтобы я мог бродяжничать?

В 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, чтобы я мог без проблем перезагружать компьютер?

4b9b3361

Ответ 1

Это может помочь

lsof -n -i4TCP:8080 

PID - это второе поле на выходе.

Или попробуйте:

lsof -i -P

Ответ 2

Быстрое и быстрое решение:

lsof -n -i4TCP:8080

PID является вторым полем. Затем убейте этот процесс:

kill -9 PID

Менее быстрое, но постоянное решение

  1. Перейти к /usr/local/bin/ (можно использовать команду + shift + g в поиске)

  2. Создайте файл с именем 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
  1. Сохраните этот файл. Теперь перейдите к терминалу и напишите stop 8888 (или любой порт)

Ответ 3

Если вышеуказанный ответ не сработал, попробуйте следующее решение. Вы можете использовать его для порта 8080 или для любых других портов.

sudo lsof -i tcp:3000 

Замените 3000 на любой порт, который вы хотите. Запустите команду ниже, чтобы убить этот процесс.

sudo kill -9 PID

PID - это идентификатор процесса, который вы хотите убить.

Ниже приведен вывод команд на Mac Terminal.

Command output

Ответ 4

Мне нужно было запустить эту команду

sudo lsof -i :80 # checks port 8080

Затем я получил

COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
acwebseca 312 root   36u  IPv4 0x34ae935da20560c1      0t0  TCP 192.168.1.3:50585->104.25.53.12:http (ESTABLISHED)

показать, какая служба использует PID

ps -ef 312

Тогда я получил это

  UID   PID  PPID   C STIME   TTY           TIME CMD
    0   312    58   0  9:32PM ??         0:02.70 /opt/cisco/anyconnect/bin/acwebsecagent -console

Чтобы удалить агент веб-безопасности cisco, выполните

sudo /opt/cisco/anyconnect/bin/websecurity_uninstall.sh

кредитов: http://tobyaw.livejournal.com/315396.html

Ответ 5

Это может быть Cisco AnyConnect. Проверьте, существует ли /Library/LaunchDaemons/com.cisco.anyconnect.vpnagentd.plist. Затем выгрузите его с помощью startctl и удалите из/Library/LaunchDaemons

Ответ 6

Чтобы написать это:

pid=$(lsof -ti tcp:8080)
if [[ $pid ]]; then
  kill -9 $pid
fi

Аргумент -t выводит lsof "terse", что означает, что он возвращает только PID.

Ответ 7

Вы также можете использовать Монитор активности для идентификации и выхода из процесса с помощью порта.

Ответ 8

Запуск: nmap -p 8080 localhost (установите nmap с помощью MacPorts или Homebrew, если у вас его еще нет в системе)

Отчет о сканировании Nmap для localhost (127.0.0.1)

Хост завершен (0.00034s латентность).

Другие адреса для localhost (не отсканированные): 1

ГОСУДАРСТВЕННАЯ СЛУЖБА ПОРТА

8080/tcp открыть http-proxy

Запуск: ps -ef | grep http-proxy

UID PID PPID C STIME TTY TIME CMD

640 99335 88310 0 12:26 pm ttys002 0: 00.01 grep http-proxy "

Запуск: ps -ef 640 (замените 501 на свой UID)

/System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/XPCServices/com.apple.PerformanceAnalysis.animationperfd.xpc/Contents/MacOS/com.apple.PerformanceAnalysis.animationperfd ​​

Порт 8080 на mac osx используется чем-то установленным с XCode SDK