Como matar um processo em uma porta no ubuntu


488

Estou tentando matar um processo na linha de comando para uma porta específica no ubuntu.

Se eu executar este comando, recebo a porta:

sudo lsof -t -i:9001

então ... agora eu quero correr:

sudo kill 'sudo lsof -t -i:9001'

Recebo esta mensagem de erro:

ERROR: garbage process ID "lsof -t -i:9001".
Usage:
  kill pid ...              Send SIGTERM to every process listed.
  kill signal pid ...       Send a signal to every process listed.
  kill -s signal pid ...    Send a signal to every process listed.
  kill -l                   List all signal names.
  kill -L                   List all signal names in a nice table.
  kill -l signal            Convert between signal numbers and names.

Eu tentei sudo kill 'lsof -t -i:9001'tambem


9
FYI, perguntas Ubuntu tem melhor chance de ser respondidas por parte Ubuntu da rede Stackexchange (StackOverflow): askubuntu.com
JScoobyCed

Respostas:


900

Você deseja usar o backtick não regular:

sudo kill -9 `sudo lsof -t -i:9001`

Se isso não funcionar, você também pode usar $()para interpolação de comando:

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

43
Você esqueceu de adicionar a opção de sinal. Deve ler:sudo kill -9 $(sudo lsof -t -i:9001)
Francesco Gramano

7
@FrancescoGramano: você não quer usar -9, a menos que precise.
Zellio 1/06

2
quando sudo killnão pode matar o processo, o método do @ putra.koreng funciona bem #
Fangxin

3
se acima não está funcionando, então tente o seguinte: stackoverflow.com/a/50515868/9339242
Arayan Singh

1
Este sistema operacional é independente ou específico do Linux? Se o Linux específica, então, mesmo este comando funcionaos.system("fuser -k 8080/tcp");
Ridhuvarshan


78

PARA UBUNTU 1 - Encontre qual aplicativo / processo está usando o profissional, digite:

sudo netstat -lpn |grep :8080

e pressione Enter.

Você obterá uma saída semelhante a esta

tcp6       0      0 :::8080                 :::*                    LISTEN      6782/java

2- Eu tenho o ID do processo, que é 6782, agora esse é o processo que está usando a porta 8080.

3- Mate o processo, digite: kill 6782

kill 6782

3
Resposta curta e
nítida

1
Funcionou perfeitamente
Tyler Sino

Você poderia escrever como está usando o comando acima?
Mohit Singh

1
Funcionou muito bem enquanto comandos em respostas com mais upvotes não foram encontrados no meu servidor Ubuntu 18.04. Obrigado!
Salivan


35

Existem alguns processos que não são mostrados usando o comando netstat normal, portanto, você deve verificar usando sudo.

Faça sudo netstat -lpn |grep :8080. O processo em execução pelo sistema não mostra o PID. Para obter o PID desse processo, você precisará executá-lo usandosudo

E então mate o processo usando o port 8080. Você pode ter que usar sudoaqui também. Então, para matar esse processo, usesudo kill -9 PID


19

Use o comando killport :

sh killport 9001 

Para baixar o shell, você pode usar wget:

wget https://cdn.rawgit.com/abdennour/miscs.sh/e0aac343/killport

1
se não é trabalho, que isso significa que a porta de destino já está fechado
Abdennour Toumi

17

Para matar no serviço de porta no ubuntu, digite o comando abaixo no terminal

No terminal:

sudo fuser -k port/tcp
sudo fuser -k 8001/tcp

Este simples está indo muito bem.
Tri

15

Você também pode usar o fusor para fazer isso (envia o SIGKILL por padrão): sudo fuser -k 9001/tcp



12

Para matar um processo em execução no número da porta9001

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


lsof   - list of files(Also used for to list related processes)

-t     - show only process ID

-i     - show only internet connections related process

:9001  - show only processes in this port number

kill   - command to kill the process

-9     - forcefully

sudo   - command to ask admin privilege(user id and password).

para mais você pode visitar meu blog


11

Para matar o processo com base no port primeiro, precisamos descobrir o pid relevante para um determinado porto e matar usando esse pid,

No meu caso, eu queria obter o pid (identificação do processo) da porta 3000:

netstat -ltnp | grep -w '3000'

então encontre pid que está ouvindo tcp

tcp6       0      0 :::3000                 :::*                    LISTEN      29972/node  

você receberá 29972 pid

Para matar este pid, use o comando abaixo

kill -9 29972

pseudo código para o processo de morte com base na porta

 netstat -ltnp | grep -w 'PORT'

e

kill -9 PID


5

Kill PORT:

sudo é importante mostrar a identificação do processo.

$ sudo netstat -antlp | grep 45136
tcp      0      0 0.0.0.0:45136         0.0.0.0:*        LISTEN           **-** 

$ kill -9 45136

5

Use o comando

 netstat -plten |grep java

grep usado java como tomcat usa java como seus processos.

Ele mostrará a lista de processos com o número da porta e o ID do processo

tcp6       0      0 :::8080                 :::*                    LISTEN      
1000       30070621    16085/java

o número antes de / java é uma identificação de processo. Agora use o comando kill para matar o processo

kill -9 16085

-9 implica que o processo será morto com força.


4

sudo fusor -n tcp -k [port_number]

sudo lsof -t -i: [port_number]


3

Use isso para matar o processo que está sendo executado na porta número "9001"

 kill $(lsof -t -i:9001)

Redundante com outros exemplos, incluindo a resposta aceita.
Kenster 27/05


1
sudo kill `sudo lsof -t -i:9001`

você não precisa adicionar a -9opção de sinal


1

Suas duas etapas processam:

  1. Conheça o ID do processo na porta no. 8080 (pode ser qualquer um)
  2. Processo de eliminação desse ID 8689 (pode ser diferente)

    fuser -n tcp 8080
    
    #o/p 8080/tcp    8689
    
    kill -9 8689
    

1

você pode trabalhar isso usando o nó

npm install freethenport -g

então

node freethenport 9001

1

Exibe conexões TCP ativas, portas nas quais o computador está escutando.

netstat -tupln

Ele listará toda a conexão ao longo do pid. Encontre e copie o pid e execute o seguinte comando. Certifique-se de substituir o ID real no comando a seguir.

kill -9 <copied pid>

-9 use para forçar a conexão à força.


1

Tente sudo fuser PORT/tcp -k Substituir PORTpela porta que você deseja matar, por exemplo80


0

kill -9 $ (lsof -t -i: 9001)

pode ser usado para matar o processo. Você pode usar qualquer número de porta em vez de 9001


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.