Possível duplicata: localizando
o processo que está usando uma certa porta no Linux
Estou usando o Ubuntu Linux 11.04. Como escrevo uma expressão de script de shell que localizará o processo em execução na porta 4444 e depois matará o processo?
Possível duplicata: localizando
o processo que está usando uma certa porta no Linux
Estou usando o Ubuntu Linux 11.04. Como escrevo uma expressão de script de shell que localizará o processo em execução na porta 4444 e depois matará o processo?
Respostas:
Você pode usar lsofpara encontrar o processo:
lsof -t -i:4444
listaria apenas o pid do processo escutando na porta 4444. Você poderia apenas dizer
kill `lsof -t -i:4444`
se você fosse corajoso.
Você usa lsof:
# lsof -n | grep TCP | grep LISTEN | grep 4444
A saída será algo como:
pname 16125 user 28u IPv6 4835296 TCP *:4444 (LISTEN)
Onde a primeira coluna é o nome do processo e a segunda coluna é a identificação do processo. Você analisa a saída, descobre qual é o ID do processo (PID) e usa o killcomando para eliminá-lo.
Como alternativa, você pode usar netstat -apse lsofnão estiver disponível no seu sistema (pois não está em um sistema do busybox com o qual trabalho regularmente).
kill -9 `netstat -lanp --protocol=inet | grep 4444 | awk -F" " '{print $7}' | awk -F"/" '{print $1}'`
Usa o netstat para listar os soquetes INET de escuta com portas numéricas e processos pai. Filtra a sequência 4444, remove a sétima coluna (pid / nome do processo) e a divide ainda mais por "/" para obter o pid. Passa isso para matar o comando.