Na MacOSX używam Packera do budowy Vagranta, więc muszę go ciągle podnosić i burzyć. Próbuję `` wędrować w górę '' i otrzymuję standardowy błąd, ponieważ port jest używany:
„Vagrant nie może przekazywać określonych portów na tej maszynie wirtualnej, ponieważ kolidowałyby one z inną aplikacją, która już nasłuchuje na tych portach. Przekierowany port do 8080 jest już używany na maszynie hosta”.
Rozwiązanie wydaje się dość proste: po prostu muszę zidentyfikować proces, który utrzymuje otwarty port 8080 i zabić ten proces, prawda? To nie jest takie proste.
Jeśli uruchomię polecenie:
nmap localhost -p 8080
Otrzymuję następujący wynik:
PORT STATE SERVICE
8080/tcp open http-proxy
Jeśli uruchomię następujące polecenie:
top -o prt
Najwyższy używany port w 1360 roku
Jeśli uruchomię następujące polecenie:
netstat -tulpn | grep :8080
Otrzymałem:
netstat: n: unknown or uninstrumented protocol
Jeśli uruchomię następujące polecenie:
lsof -i :8080
Nie otrzymuję żadnego wyjścia
Jeśli ponownie uruchomię komputer, port jest teraz dostępny i mogę teraz „wędrować”.
Jak mogę zabić dowolny proces używający portu 8080, aby móc wędrować bez ponownego uruchamiania komputera?
źródło
sudo lsof -n -i4TCP:8080
odebrać procesy należące do roota.Szybkie i szybkie rozwiązanie:
lsof -n -i4TCP:8080
PID
to drugie pole. Następnie zakończ ten proces:kill -9 PID
Mniej szybkie, ale trwałe rozwiązanie
Idź do
/usr/local/bin/
(można użyć polecenia + shift + g w wyszukiwarce)Utwórz plik o nazwie
stop
. Wklej w nim poniższy kod:#!/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
(lub dowolny port)źródło
chmod 755 stop
.Jeśli powyższa odpowiedź nie zadziała, wypróbuj poniższe rozwiązanie. Możesz go użyć dla portu 8080 lub dowolnego innego portu.
Zastąp 3000 dowolnym portem, który chcesz. Uruchom poniższe polecenie, aby zabić ten proces.
PID to identyfikator procesu, który chcesz zabić.
Poniżej znajduje się wyjście poleceń w terminalu Mac.
źródło
Aby to napisać:
-t
Argument ma wyjście lsof „lakoniczny”, co oznacza, że tylko ona zwraca PID.źródło
Musiałem uruchomić to polecenie
Wtedy dostałem
pokaż, która usługa używa PID
Wtedy dostałem to
Aby odinstalować agenta bezpieczeństwa WWW Cisco, uruchom
kredyty na: http://tobyaw.livejournal.com/315396.html
źródło
Może to być Cisco AnyConnect. Sprawdź, czy istnieje /Library/LaunchDaemons/com.cisco.anyconnect.vpnagentd.plist. Następnie wyładuj go za pomocą launchctl i usuń z / Library / LaunchDaemons
źródło
Uruchamiając powyższe polecenie, możesz zobaczyć, jakie są uruchomione wszystkie zadania.
Wprowadź PID (numer identyfikacyjny procesu), co spowoduje zakończenie / zabicie instancji.
źródło
Możesz również użyć Monitora aktywności, aby zidentyfikować i zakończyć proces przy użyciu portu.
źródło
Uruchom:
nmap -p 8080 localhost
(zainstaluj nmap z MacPorts lub Homebrew, jeśli jeszcze go nie masz w systemie)Biegać:
ps -ef | grep http-proxy
Uruchom:
ps -ef 640
(zamień 501 na swój UID)Port 8080 na Mac OSX jest używany przez coś zainstalowanego z XCode SDK
źródło
Użyj następującego polecenia:
lsof -n -i4TCP:8080 | awk '{print$2}' | xargs kill -9
Identyfikator procesu portu 8080 zostanie wybrany i zabity siłą przy użyciu
kill -9
.źródło
spróbuj netstat
jeśli twój netstat nie obsługuje -p, użyj lsof
Do użytku z Centos 7
źródło