web-dev-qa-db-fra.com

Comment puis-je tuer n'importe quel processus utilisant le port 8080 pour pouvoir vagabonder?

Sur MacOSX, j'utilise Packer pour créer une boîte Vagrant. Je dois donc l'amener continuellement et la démolir. J'essaie de "vagabonder" et de recevoir l'erreur standard parce que le port est utilisé: 

"Vagrant ne peut pas transférer les ports spécifiés sur cette machine virtuelle, car ils entreraient en conflit avec une autre application qui écoute déjà ces ports. Le port transféré vers 8080 est déjà utilisé sur la machine hôte."

La solution semble assez simple: je dois juste identifier le processus qui maintient le port 8080 ouvert et mettre fin à ce processus, non? Ce n'est pas si facile.


Si je lance la commande:

nmap localhost -p 8080

Je reçois la sortie suivante:

PORT     STATE SERVICE
8080/tcp open  http-proxy

Si j'exécute la commande suivante:

top -o prt

Le plus haut port utilisé en 1360


Si j'exécute la commande suivante:

 netstat -tulpn | grep :8080

Je reçois: 

netstat: n: unknown or uninstrumented protocol

Si j'exécute la commande suivante:

lsof -i :8080

Je ne reçois aucune sortie


Si je redémarre mon ordinateur, le port est maintenant disponible et je peux maintenant "vagabonder".

Comment puis-je tuer n'importe quel processus utilisant le port 8080 pour pouvoir vagabonder sans redémarrer mon ordinateur?

44
Jason Curran

Cela pourrait aider

lsof -n -i4TCP:8080 

Le PID est le deuxième champ de la sortie.

Ou essayez:

lsof -i -P
80
Mark Setchell

Solution rapide et rapide:

lsof -n -i4TCP:8080 

Le PID est le deuxième champ.

kill -9 PID

Solution moins rapide mais permanente

1.) Allez dans/usr/local/bin/(peut utiliser la commande + shift + g dans le Finder)

2.) faire le fichier nommé stop. Et coller ci-dessous le code qu'il contient.

    #!/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

3.) Enregistrer le fichier. Enjoyyy !!. Aller au terminal et écrire stop 8888 (ou n'importe quel port)

Vous pouvez écrire cette commande (stop port) de n’importe où dans le répertoire.

33
ronak kothari

Si la réponse ci-dessus acceptée ne fonctionne pas, essayez la solution ci-dessous. Vous pouvez l’utiliser pour le port 8080 ou pour n’importe quel autre port.

Sudo lsof -i tcp:3000 

Remplacez 3000 par le port de votre choix. Exécuter ci-dessous la commande pour tuer ce processus.

Sudo kill -9 PID

Le PID est l'ID de processus que vous souhaitez supprimer.

Voici la sortie des commandes sur le terminal mac.

 Command output

11
Akshay Thorve

J'avais besoin d'exécuter cette commande

Sudo lsof -i :80 # checks port 8080

Puis j'ai eu 

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)

montrer quel service utilise le PID

ps -ef 312

Puis j'ai eu ça

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

Pour désinstaller l'agent de sécurité Web Cisco, exécutez

Sudo /opt/Cisco/anyconnect/bin/websecurity_uninstall.sh

crédits à: http://tobyaw.livejournal.com/315396.html

3
mjabadilla

Ce peut être Cisco AnyConnect. Vérifiez si /Library/LaunchDaemons/com.Cisco.anyconnect.vpnagentd.plist existe Déchargez-le ensuite avec launchctl et supprimez-le de/Library/LaunchDaemons 

2
Andriy Sylka

Exécuter: nmap -p 8080 localhost (Installez nmap avec MacPorts ou Homebrew si vous ne l'avez pas encore sur votre système)

Rapport d'analyse Nmap pour localhost (127.0.0.1)

L'hôte est actif (latence 0.00034).

Autres adresses pour localhost (non scanné): :: 1

SERVICE ÉTAT DU PORT

Proxy http ouvert 8080/tcp

Exécuter: ps -ef | grep http-proxy

UID PID PPID C TEMPS TTY TEMPS CMD

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

Exécuter: ps -ef 640 (remplacez 501 par votre UID)

/ System/Library /PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/XPCServices/com.Apple.PerformanceAnalysis.animationperfd.xpc/Contents/MacOS/com.Apple.PerformanceAnalysis.animationperfd.xpc/Contents/MacOS/com.Apple.PerformanceAnalysis.animationperfd.xpc/Contents/MacOS/com.Apple.PerformanceAnalysis.animationperfd.xpc/Contents/MacOS/com.Apple.PerformanceAnalysis.animationperf

Le port 8080 sur mac osx est utilisé par quelque chose installé avec XCode SDK

1
Yiling

Pour écrire ceci:

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

L'argument -t rend la sortie de lsof "laconique", ce qui signifie qu'il ne renvoie que le PID.

1
voutasaurus

Vous pouvez également utiliser le moniteur d'activité pour identifier et quitter le processus à l'aide du port.

0
gcmori