En MacOSX, estoy usando Packer para construir una caja Vagrant, así que necesito abrirla y derribarla continuamente. Estoy intentando 'vagabundear' y recibo el error estándar porque el puerto está en uso:
"Vagrant no puede reenviar los puertos especificados en esta máquina virtual, ya que colisionarían con alguna otra aplicación que ya esté escuchando en estos puertos. El puerto reenviado a 8080 ya está en uso en la máquina host".
La solución parece bastante simple: solo necesito identificar el proceso que mantiene abierto el puerto 8080 y matar ese proceso, ¿verdad? No es así de fácil.
Si ejecuto el comando:
nmap localhost -p 8080
Recibo el siguiente resultado:
PORT STATE SERVICE
8080/tcp open http-proxy
Si ejecuto el siguiente comando:
top -o prt
El puerto más alto en uso en 1360
Si ejecuto el siguiente comando:
netstat -tulpn | grep :8080
Recibo:
netstat: n: unknown or uninstrumented protocol
Si ejecuto el siguiente comando:
lsof -i :8080
No recibo salida
Si reinicio mi computadora, el puerto ahora está disponible y ahora puedo 'vagabundear'.
¿Cómo puedo eliminar cualquier proceso que esté usando el puerto 8080 para poder vagar sin reiniciar mi computadora?
fuente
sudo lsof -n -i4TCP:8080
recoger procesos propiedad de root.Solución rápida y rápida:
lsof -n -i4TCP:8080
PID
es el segundo campo. Luego, mata ese proceso:kill -9 PID
Solución menos rápida pero permanente
Ir a
/usr/local/bin/
(Puede usar command + shift + g en el buscador)Crea un archivo con el nombre
stop
. Pegue el siguiente código en él:#!/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
(o cualquier puerto)fuente
chmod 755 stop
.En caso de que la respuesta aceptada anteriormente no funcione, pruebe la siguiente solución. Puede usarlo para el puerto 8080 o para cualquier otro puerto.
Reemplace 3000 con el puerto que desee. Ejecute el siguiente comando para matar ese proceso.
PID es el ID de proceso que desea eliminar.
A continuación se muestra la salida de los comandos en Mac Terminal.
fuente
Para escribir esto:
El
-t
argumento hace que la salida de lsof sea "concisa", lo que significa que solo devuelve el PID.fuente
Necesitaba ejecutar este comando
Entonces tengo
muestra qué servicio está usando el PID
Entonces tengo esto
Para desinstalar el agente de seguridad web de Cisco, ejecute
créditos a: http://tobyaw.livejournal.com/315396.html
fuente
Puede ser Cisco AnyConnect. Compruebe si existe /Library/LaunchDaemons/com.cisco.anyconnect.vpnagentd.plist. Luego descárguelo con launchctl y elimínelo de / Library / LaunchDaemons
fuente
Al ejecutar el comando anterior, puede ver cuáles son todos los trabajos en ejecución.
Ingrese el PID (número de identificación del proceso), por lo que esto terminará / eliminará la instancia.
fuente
También puede usar el Monitor de actividad para identificar y salir del proceso usando el puerto.
fuente
Ejecutar:
nmap -p 8080 localhost
(Instale nmap con MacPorts o Homebrew si aún no lo tiene en su sistema)Correr:
ps -ef | grep http-proxy
Ejecutar:
ps -ef 640
(reemplace 501 con su UID)El puerto 8080 en mac osx es usado por algo instalado con XCode SDK
fuente
Utilice el siguiente comando:
lsof -n -i4TCP:8080 | awk '{print$2}' | xargs kill -9
El ID de proceso del puerto 8080 se seleccionará y eliminará con fuerza
kill -9
.fuente
prueba netstat
si su netstat no es compatible con -p, use lsof
Para uso de Centos 7
fuente