Elimine qualquer serviço em execução em uma porta específica

7

Estou tentando escrever um script que mata o serviço em execução em uma porta específica. Este é o meu script:

a=$(ps ax | grep 4990 | grep java | awk '{print $1}')
kill -9 $a

É um programa em java. Este script funciona algumas vezes, mas misteriosamente falha na maior parte do tempo.

Existe alguma outra maneira de matar um serviço em execução em uma porta? Minha porta é 4990 .

    
por Abhishek dot py 03.07.2014 / 07:25

2 respostas

16

Você pode tentar fuser :

fuser -k 4990/tcp

Ou usando lsof para obter o ID do processo, em seguida, alimente para kill :

kill $(sudo lsof -t -i:4990)
    
por 03.07.2014 / 07:27
1

Se você quiser matar qualquer serviço ou processo em execução no número de porta 8080, primeiro precisará localizar o número de identificação do processo (PID) da porta 8080 e, em seguida, eliminá-lo. Execute o seguinte comando para localizar o número de porta 8080 PID:

sudo lsof -t -i:8080

Aqui,

  • sudo - comando para solicitar privilégios de administrador (ID de usuário e senha).
  • lsof - lista de arquivos (também usada para listar processos relacionados)
  • -t - mostra apenas o ID do processo
  • -i - mostra apenas o processo relacionado com ligações à Internet
  • : 8080 - mostra apenas processos neste número de porta

Então agora você pode facilmente matar seu PID usando o seguinte comando:

sudo kill -9 <PID>

Aqui,

  • kill - comando para matar o processo
  • -9 - com força

Você pode usar um comando para matar um processo em uma porta específica usando o seguinte comando:

sudo kill -9 $(sudo lsof -t -i:8000)

Para mais, você pode ver o seguinte link Como matar um processo em uma porta específica no linux

    
por 18.05.2018 / 14:33