No MacOSX, estou usando o Packer para construir uma caixa Vagrant, então preciso abri-la e destruí-la continuamente. Estou tentando 'vagrant up' e recebo o erro padrão porque a porta está em uso:
"O Vagrant não pode encaminhar as portas especificadas nesta VM, pois elas colidiriam com algum outro aplicativo que já está escutando nessas portas. A porta encaminhada para 8080 já está em uso na máquina host."
A solução parece bastante simples: eu só preciso identificar o processo que está mantendo a porta 8080 aberta e encerrar esse processo, certo? Não é tão fácil.
Se eu executar o comando:
nmap localhost -p 8080
Eu recebo a seguinte saída:
PORT STATE SERVICE
8080/tcp open http-proxy
Se eu executar o seguinte comando:
top -o prt
A porta mais alta em uso em 1360
Se eu executar o seguinte comando:
netstat -tulpn | grep :8080
Eu recebi:
netstat: n: unknown or uninstrumented protocol
Se eu executar o seguinte comando:
lsof -i :8080
Eu não recebo nenhuma saída
Se eu reiniciar meu computador, a porta estará disponível e eu posso 'vagar'.
Como posso matar qualquer processo que esteja usando a porta 8080 para que eu possa vagrant sem reiniciar meu computador?
fonte
sudo lsof -n -i4TCP:8080
selecionar processos pertencentes ao root.Solução rápida e rápida:
lsof -n -i4TCP:8080
PID
é o segundo campo. Em seguida, elimine esse processo:kill -9 PID
Solução menos rápida, mas permanente
Vá para
/usr/local/bin/
(pode usar command + shift + g no localizador)Faça um arquivo chamado
stop
. Cole o código abaixo nele:#!/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
(ou qualquer porta)fonte
chmod 755 stop
.Caso a resposta aceita acima não funcione, tente a solução abaixo. Você pode usá-lo para a porta 8080 ou para qualquer outra porta.
Substitua 3000 pela porta que desejar. Execute o comando abaixo para encerrar esse processo.
PID é o ID do processo que você deseja eliminar.
Abaixo está a saída dos comandos no Mac Terminal.
fonte
Para criar um script:
O
-t
argumento torna a saída de lsof "concisa", o que significa que ele retorna apenas o PID.fonte
Eu precisava executar este comando
Então eu tenho
mostrar qual serviço está usando o PID
Então eu peguei isso
Para desinstalar o agente de segurança da web da Cisco, execute
créditos para: http://tobyaw.livejournal.com/315396.html
fonte
Ao executar o comando acima, você pode ver quais são as tarefas em execução.
Digite o PID (número de identificação do processo), para encerrar / eliminar a instância.
fonte
Pode ser Cisco AnyConnect. Verifique se /Library/LaunchDaemons/com.cisco.anyconnect.vpnagentd.plist existe. Em seguida, descarregue-o com launchctl e exclua de / Library / LaunchDaemons
fonte
Você também pode usar o Activity Monitor para identificar e encerrar o processo usando a porta.
fonte
Execute:
nmap -p 8080 localhost
(Instale o nmap com MacPorts ou Homebrew se ainda não o tiver em seu sistema)Corre:
ps -ef | grep http-proxy
Execute:
ps -ef 640
(substitua 501 pelo seu UID)A porta 8080 no mac osx é usada por algo instalado com o XCode SDK
fonte
Use o seguinte comando:
lsof -n -i4TCP:8080 | awk '{print$2}' | xargs kill -9
A identificação do processo da porta 8080 será selecionada e eliminada com força usando
kill -9
.fonte
Eu precisava matar processos em portas diferentes, então criei um script bash:
Basta adicionar isso ao seu .bashrc e executá-lo assim:
Você pode passar qualquer número de porta que desejar
fonte
tente netstat
se o seu netstat não suporta -p, use lsof
Para Centos 7 use
fonte