Unter MacOSX verwende ich Packer, um eine Vagrant-Box zu erstellen, daher muss ich sie kontinuierlich aufrufen und abreißen. Ich versuche, mich zu "vagabundieren" und erhalte den Standardfehler, weil der Port verwendet wird:
"Vagrant kann die angegebenen Ports auf dieser VM nicht weiterleiten, da sie mit einer anderen Anwendung kollidieren würden, die diese Ports bereits überwacht. Der weitergeleitete Port an 8080 wird bereits auf dem Hostcomputer verwendet."
Die Lösung scheint einfach zu sein: Ich muss nur den Prozess identifizieren, der Port 8080 offen hält, und diesen Prozess beenden, oder? Es ist nicht so leicht.
Wenn ich den Befehl ausführe:
nmap localhost -p 8080
Ich erhalte folgende Ausgabe:
PORT STATE SERVICE
8080/tcp open http-proxy
Wenn ich den folgenden Befehl ausführe:
top -o prt
Der höchste Hafen, der 1360 benutzt wurde
Wenn ich den folgenden Befehl ausführe:
netstat -tulpn | grep :8080
Ich erhalte:
netstat: n: unknown or uninstrumented protocol
Wenn ich den folgenden Befehl ausführe:
lsof -i :8080
Ich erhalte keine Ausgabe
Wenn ich meinen Computer neu starte, ist der Port jetzt verfügbar und ich kann jetzt "vagabundieren".
Wie kann ich jeden Prozess beenden, der Port 8080 verwendet, damit ich mich ohne Neustart meines Computers aufhalten kann?
quelle
sudo lsof -n -i4TCP:8080
, Prozesse aufzunehmen, die root gehören.Schnelle und schnelle Lösung:
lsof -n -i4TCP:8080
PID
ist das zweite Feld. Dann töte diesen Prozess:kill -9 PID
Weniger schnelle aber dauerhafte Lösung
Gehe zu
/usr/local/bin/
(Kann Befehl + Umschalt + g im Finder verwenden)Erstellen Sie eine Datei mit dem Namen
stop
. Fügen Sie den folgenden Code ein:#!/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
(oder einen beliebigen Port)quelle
chmod 755 stop
.Falls die oben akzeptierte Antwort nicht funktioniert hat, versuchen Sie es mit der folgenden Lösung. Sie können es für Port 8080 oder für andere Ports verwenden.
Ersetzen Sie 3000 durch den gewünschten Anschluss. Führen Sie den folgenden Befehl aus, um diesen Prozess abzubrechen.
PID ist die Prozess-ID, die Sie beenden möchten.
Unten sehen Sie die Ausgabe von Befehlen auf dem Mac Terminal.
quelle
So schreiben Sie Folgendes:
Das
-t
Argument macht die Ausgabe von lsof "knapp", was bedeutet, dass nur die PID zurückgegeben wird.quelle
Ich musste diesen Befehl ausführen
Dann habe ich
Zeigen Sie an, welcher Dienst die PID verwendet
Dann habe ich das bekommen
Um den Cisco Web Security Agent zu deinstallieren, führen Sie ihn aus
Credits an: http://tobyaw.livejournal.com/315396.html
quelle
Dies kann Cisco AnyConnect sein. Überprüfen Sie, ob /Library/LaunchDaemons/com.cisco.anyconnect.vpnagentd.plist vorhanden ist. Entladen Sie es dann mit launchctl und löschen Sie es aus / Library / LaunchDaemons
quelle
Wenn Sie den obigen Befehl ausführen, können Sie sehen, welche Jobs ausgeführt werden.
Geben Sie die PID (Prozessidentifikationsnummer) ein, damit die Instanz beendet / beendet wird.
quelle
Sie können den Aktivitätsmonitor auch verwenden, um den Prozess über den Port zu identifizieren und zu beenden.
quelle
Ausführen:
nmap -p 8080 localhost
(Installieren Sie nmap mit MacPorts oder Homebrew, wenn Sie es noch nicht auf Ihrem System haben.)Lauf:
ps -ef | grep http-proxy
Ausführen:
ps -ef 640
(501 durch Ihre UID ersetzen)Port 8080 auf Mac OSX wird von etwas verwendet, das mit XCode SDK installiert wurde
quelle
Verwenden Sie den folgenden Befehl:
lsof -n -i4TCP:8080 | awk '{print$2}' | xargs kill -9
Die Prozess-ID von Port 8080 wird mit Gewalt ausgewählt und beendet
kill -9
.quelle
versuche netstat
Wenn Ihr Netstat -p nicht unterstützt, verwenden Sie lsof
Für Centos 7 verwenden
quelle