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

Tampa
fonte
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)
zellio
fonte
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
246

você pode usar

fuser -n tcp -k 9001 

veja mais detalhes na wikipedia

putra.koreng
fonte
1
Se não root: sudo fusor -n tcp-k 9001
JLavoie
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
Mohit Singh
fonte
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
38

A melhor maneira de matar uma porta no terminal ubuntu é fuser -k 9001/tcp

Vishnu S Babu
fonte
3
Trabalhou na perfeição para mim
Meet Zaveri 08/10
Também funcionou para mim. Essa deve ser a resposta aceita.
CodeSlave 28/08/19
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

Usuário16119012
fonte
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
Abdennour TOUMI
fonte
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
Abhishek-Saini
fonte
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

Dmitriusan
fonte
15

basta entrar

    fuser -k -n tcp 3000

no terminal, onde 3000 é o seu número de porta

Sai Kumar
fonte
1
usando fusor: mostre quais processos usam os arquivos, soquetes ou sistemas de arquivos nomeados -k: Representa um kill -n: Netstat tcp: Esse é um protocolo para usar sua porta 3000: porta personalizada aqui é o link: askubuntu.com/questions / 207609 / processo i-cant-kill-a-port
Kaushik shrimali
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

Arayan Singh
fonte
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
Prakash Nagaraj
fonte
8

Usa isto:

sudo kill -9 $(lsof -t -i:9001)
delpha
fonte
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
Guna Sekaran
fonte
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.

kumbhanibhavesh
fonte
4

sudo fusor -n tcp -k [port_number]

sudo lsof -t -i: [port_number]

Javad
fonte
3

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

 kill $(lsof -t -i:9001)
arvind
fonte
Redundante com outros exemplos, incluindo a resposta aceita.
Kenster 27/05
3

Tente o seguinte:

lsof -i :port

or 

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

or

kill -9 <pid>

or 

sh killport 8000
Ranvijay Sachan
fonte
Estou no Ubuntu 17 e kill -9 <pid>funcionou muito bem para mim!
precisa saber é o seguinte
1
sudo kill `sudo lsof -t -i:9001`

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

davidblumer
fonte
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
    
Ratnesh Kushwaha
fonte
1

você pode trabalhar isso usando o nó

npm install freethenport -g

então

node freethenport 9001
Adeojo Emmanuel IMM
fonte
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.

Lalit Mohan
fonte
1

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

Armin
fonte
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

Charuka Herath
fonte
-1

sudo kill $ (sudo lsof -t -i: 1337)

Albert Davies
fonte