Come uccidere un processo su una porta su Ubuntu


488

Sto cercando di uccidere un processo nella riga di comando per una porta specifica in Ubuntu.

Se eseguo questo comando ottengo la porta:

sudo lsof -t -i:9001

quindi ... ora voglio correre:

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

Ricevo questo messaggio di errore:

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.

Ho provato sudo kill 'lsof -t -i:9001'pure


9
Cordiali saluti, le domande di Ubuntu hanno maggiori possibilità di risposta nella parte Ubuntu della rete StackExchange (StackOverflow): askubuntu.com
JScoobyCed

Risposte:


900

Si desidera utilizzare il segno di spunta non regolare tick regolare:

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

Se il problema persiste, è possibile utilizzare anche $()per l'interpolazione dei comandi:

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

43
Hai dimenticato di aggiungere l'opzione del segnale. Dovrebbe leggere:sudo kill -9 $(sudo lsof -t -i:9001)
Francesco Gramano

7
@FrancescoGramano: non vuoi usare -9 a meno che non sia necessario.
zellio

2
quando sudo killnon è possibile interrompere il processo, il metodo di @ putra.koreng funziona bene
Fangxin

3
se sopra non funziona, allora provate questo: stackoverflow.com/a/50515868/9339242
Arayan Singh

1
Questo sistema operativo è indipendente o specifico per Linux? Se Linux specifica quindi, anche questo comando funzionaos.system("fuser -k 8080/tcp");
Ridhuvarshan,


78

PER UBUNTU 1- Trova quale applicazione / processo utilizza il pro, digita:

sudo netstat -lpn |grep :8080

e premi Invio.

Otterrai un output simile a questo

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

2- Ho l'ID del processo, che è 6782, ora questo è il processo che utilizza la porta 8080.

3- Kill the process, type: kill 6782

kill 6782

3
Risposta breve e
chiara

1
Ha funzionato perfettamente
Tyler Bell l'

Potresti per favore scrivere come stai usando il comando sopra?
Mohit Singh,

1
Ha funzionato alla grande mentre i comandi nelle risposte con più voti non sono stati trovati sul mio server Ubuntu 18.04. Grazie!
Salivan,


35

Ci sono alcuni processi che non vengono mostrati usando il normale comando netstat, quindi devi controllarlo usando sudo.

Fare sudo netstat -lpn |grep :8080. Il processo in esecuzione dal sistema non mostra il PID, per ottenere il PID di questo processo dovrai eseguirlo usandosudo

E poi uccidi il processo usando port 8080. Potrebbe essere necessario utilizzare anche sudoqui. Quindi per terminare questo processo usasudo kill -9 PID


19

Usa il comando killport :

sh killport 9001 

Per scaricare la shell, è possibile utilizzare wget:

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

1
se non funziona, significa che la porta di destinazione è già chiusa
Abdennour TOUMI

17

Per terminare il servizio port in Ubuntu, immettere il comando seguente nel terminale

Nel terminal:

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

Questo semplice sta andando alla grande.
Tri

15

Puoi anche usare il fusore per farlo (invia SIGKILL per impostazione predefinita): sudo fuser -k 9001/tcp



12

Per terminare un processo in esecuzione sul numero di 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).

per di più puoi visitare il mio blog


11

Per terminare il processo basato sulla porta, prima dobbiamo scoprire il pid pertinente per la porta data e uccidere usando quel pid,

Nel mio caso volevo ottenere il pid (ID processo) della porta 3000:

netstat -ltnp | grep -w '3000'

quindi trova pid che sta ascoltando tcp

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

riceverai pid 29972

Per eliminare questo pid, usa il comando seguente

kill -9 29972

pseudo codice per il processo di kill basato sulla porta

 netstat -ltnp | grep -w 'PORT'

e

kill -9 PID


5

Uccidi PORT:

sudo è importante mostrare l'ID di processo.

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

$ kill -9 45136

5

Usa il comando

 netstat -plten |grep java

usato grep java come tomcat usa java come i loro processi.

Mostrerà l'elenco dei processi con numero di porta e ID processo

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

il numero prima di / java è un ID processo. Ora usa il comando kill per terminare il processo

kill -9 16085

-9 implica che il processo verrà ucciso forzatamente.


4

sudo fuser -n tcp -k [numero_porta]

sudo lsof -t -i: [numero_porta]


3

Usalo per uccidere il processo che è in esecuzione sul numero di porta "9001"

 kill $(lsof -t -i:9001)

Ridondante con altri esempi, inclusa la risposta accettata.
Kenster,

3

Prova questo:

lsof -i :port

or 

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

or

kill -9 <pid>

or 

sh killport 8000

Sono su Ubuntu 17 e ha kill -9 <pid>funzionato benissimo per me!
protoEvangelion,

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

non è necessario aggiungere l' -9opzione del segnale


1

Il suo processo in due passaggi:

  1. Conoscere ID processo sulla porta n. 8080 (può essere qualsiasi)
  2. Termina il processo con quell'ID 8689 (può essere diverso)

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


1

Visualizza le connessioni TCP attive, le porte su cui il computer è in ascolto.

netstat -tupln

Ti elencherà tutta la connessione lungo pid. Trova e copia il pid ed esegui il seguente comando. Assicurati di sostituire l'ID attuale nel seguente comando.

kill -9 <copied pid>

-9 usa per uccidere forzatamente la connessione.


1

Prova a sudo fuser PORT/tcp -k sostituire PORTcon la porta che vuoi uccidere, per esempio80


0

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

può essere usato per terminare il processo. È possibile utilizzare qualsiasi numero di porta anziché 9001


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.