Existem maneiras provavelmente mais limpas, mas algo como:
netstat -lnp | grep 'tcp .*127.0.0.1:9984' | sed -e 's/.*LISTEN *//' -e 's#/.*##' | xargs kill
Eu queria saber, existe alguma maneira de matar um processo que está sendo executado em uma porta IP e específica no Ubuntu 14.04 em um IP local e porta? De preferência, isso seria em um comando, mas se não, um script bash seria perfeitamente bem também.
Usando ss , podemos obter detalhes do processo / conexões que estão escutando em um IP e porta específicos, para src 127.0.0.1 e port 80 :
sudo ss -lp '( dport = :80 )' src 127.0.0.1
então, só podemos obter PID usando grep e eliminá-los usando xargs e kill .
sudo ss -lp '( dport = :80 )' src 127.0.0.1 | grep -Po "(?<=pid=).*(?=,)"\
| sort | uniq | xargs kill
Você também pode usar a opção -a em vez de -l para obter uma lista de todos os sockets de escuta e de não escuta.
fuser no Linux tem uma opção que faz exatamente o que você está procurando fazer.
Por exemplo, fuser 80/tcp imprimirá o PID do processo vinculado a essa porta e fuser -k 80/tcp eliminará esse processo.
No linux, como root , você pode usar
ss -ptan
ou
netstat -ntulp
para obter uma lista de todos os processos em execução que "escutam" (neste caso, tcp, substitua o "t" por "u" para o udp).
Então, um liner, para matar o processo de escuta na porta 80, seria algo assim:
ss -tanp | grep 80 | head -1 | sed 's_.*pid=\(.*\),.*__' | xargs kill
O único IP em que um processo na máquina local pode ser executado é 127.0.0.1 , lo , o dispositivo de loopback, conhecido como localhost . As portas podem ser encaminhadas para um endereço IP público com configurações de rede.
Normalmente, uso sudo lsof -i :<port> para ver o que está causando uma EADDRINUSE porque é mais rápido para digitar.
sudo lsof -i :443 | tail -1 | cut -f2 -d' ' | xargs kill
Matará o processo em execução na porta 443, se o seu lsof fornecer resultados como:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python3 32233 cat 4u IPv4 24123106 0t0 TCP *:http-alt (LISTEN)
De lsof --help :
-i i select by IPv[46] address: [46][proto][@host|addr][:svc_list|port_list]