Como o título diz, estou executando vários servidores de jogo, e cada um deles tem o mesmo, name
mas diferente PID
e o port
número. Eu gostaria de combinar o PID
do servidor que está escutando em determinada porta, e então gostaria de encerrar esse processo. Eu preciso disso para completar meu script bash.
É mesmo possível? Porque ainda não encontrou soluções na web.
netstat: 80: unknown or uninstrumented protocol
usou a80
porta (nginx) para fins de teste. Não funcionou.netstat -nlp | grep :80
vez dissonetstat: option requires an argument -- p
netstat
é chamado. Possui outra sintaxe.Versão curta que você pode passar para o comando kill:
fonte
lsof -i4TCP:80 -sTCP:LISTEN -t
é provavelmente o que você deseja.kill -9 `lsof -i:80 -t`
para facilidade de cópianetstat -p -l | grep $PORT
e aslsof -i :$PORT
soluções são boas, mas eu prefirofuser $PORT/tcp
sintaxe de extensão para POSIX (que funciona paracoreutils
) como com pipe:ele imprime puro pid para que você possa eliminar a
sed
magia.Uma coisa que torna
fuser
meu amante ferramentas é a capacidade de enviar sinais para esse processo diretamente (esta sintaxe também é uma extensão para POSIX):Além disso, -k é suportado pelo FreeBSD: http://www.freebsd.org/cgi/man.cgi?query=fuser
fonte
netstat -nlp
deve informar o PID do que está escutando em qual porta.fonte
netstat: 80: unknown or uninstrumented protocol
usou a80
porta (nginx) para fins de teste. Não funcionou.Como o sockstat não foi instalado nativamente em minha máquina, eu criei a resposta do stanwise para usar o netstat em seu lugar.
fonte
Eu queria programaticamente - usando apenas o Bash - eliminar o processo de escuta em uma determinada porta.
Digamos que a porta seja 8089, então aqui está como eu fiz:
Espero que isto ajude alguém! Eu sei que vai ajudar minha equipe.
fonte
function kill-listener { lsof -i:$1 -t | xargs kill -9 }
Usando seu exemplo de porta 8089:kill-listener 8089
Sintaxe:
Exemplo: para encerrar o processo em execução na porta 4200, execute o seguinte comando
Testado no Ubuntu.
fonte
no windows, a opção netstat para obter o pid é -o e -p seleciona um filtro de protocolo, ex .: netstat -a -p tcp -o
fonte