Comment tuer un processus sur un port sur Ubuntu


488

J'essaie de tuer un processus dans la ligne de commande pour un port spécifique dans ubuntu.

Si j'exécute cette commande, j'obtiens le port:

sudo lsof -t -i:9001

alors ... maintenant je veux courir:

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

Je reçois ce message d'erreur:

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.

J'ai essayé sudo kill 'lsof -t -i:9001'aussi


9
Pour info, les questions sur Ubuntu ont plus de chances d'être répondues sur la partie Ubuntu du réseau StackExchange (StackOverflow): askubuntu.com
JScoobyCed

Réponses:


900

Vous souhaitez utiliser le backtick et non le tick régulier:

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

Si cela ne fonctionne pas, vous pouvez également utiliser $()pour l'interpolation de commande:

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

43
Vous avez oublié d'ajouter l'option de signal. Devrait lire:sudo kill -9 $(sudo lsof -t -i:9001)
Francesco Gramano

7
@FrancescoGramano: vous ne voulez pas utiliser -9 sauf si vous le devez.
zellio

2
quand sudo killne peut pas tuer le processus, la méthode de @ putra.koreng fonctionne bien
Fangxin

3
si ci-dessus ne fonctionne pas, essayez ceci: stackoverflow.com/a/50515868/9339242
Arayan Singh

1
Cet OS est-il indépendant ou spécifique à Linux? Si elle est spécifique à Linux, même cette commande fonctionneos.system("fuser -k 8080/tcp");
Ridhuvarshan


78

POUR UBUNTU 1- Trouvez quelle application / processus utilise le pro, tapez:

sudo netstat -lpn |grep :8080

et appuyez sur Entrée.

Vous obtiendrez une sortie similaire à celle-ci

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

2- J'ai l'ID de processus, qui est 6782, maintenant c'est le processus qui utilise le port 8080.

3- Tuez le processus, tapez: kill 6782

kill 6782

3
Réponse courte et
nette

1
Fonctionne parfaitement
Tyler Bell

Pourriez-vous s'il vous plaît écrire comment vous utilisez la commande ci-dessus?
Mohit Singh

1
Fonctionne tout simplement génial alors que les commandes dans asnwers avec plus de votes positifs sont introuvables sur mon serveur Ubuntu 18.04. Merci!
Salivan

38

La meilleure façon de tuer un port dans le terminal Ubuntu est fuser -k 9001/tcp


3
A parfaitement fonctionné pour moi
Rencontrez Zaveri

Il a travaillé pour moi aussi. Ce devrait être la réponse acceptée.
CodeSlave

35

Il existe certains processus qui ne s'affichent pas à l'aide de la commande netstat normale, vous devez donc le vérifier en utilisant sudo .

Faites sudo netstat -lpn |grep :8080. Le processus exécuté par le système n'affiche pas le PID, pour obtenir le PID de ce processus, vous devrez l'exécuter en utilisantsudo

Et puis tuez le processus en utilisant le port 8080. Vous devrez peut-être également l'utiliser sudoici. Donc, pour tuer ce processus, utilisezsudo kill -9 PID


19

Utilisez la commande killport :

sh killport 9001 

Pour télécharger le shell, vous pouvez utiliser wget:

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

1
si cela ne fonctionne pas, cela signifie que le port cible est déjà fermé
Abdennour TOUMI

18

Pour tuer sur le service de port dans Ubuntu, entrez la commande ci-dessous dans le terminal

Dans le terminal:

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

Ce simple fait très bien.
Tri

15

Vous pouvez également utiliser l'unité de fusion pour ce faire (envoie SIGKILL par défaut): sudo fuser -k 9001/tcp



12

Pour tuer un processus exécuté sur le numéro de port9001

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).

pour plus vous pouvez visiter mon blog


11

Pour tuer le processus basé sur le port, nous devons d'abord trouver le pid approprié pour le port donné et tuer en utilisant ce pid,

Dans mon cas, je voulais obtenir le pid (identifiant de processus) du port 3000:

netstat -ltnp | grep -w '3000'

puis trouvez pid qui écoute tcp

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

vous obtiendrez le pid 29972

Pour tuer ce pid, utilisez la commande ci-dessous

kill -9 29972

pseudo-code pour le processus de suppression basé sur le port

 netstat -ltnp | grep -w 'PORT'

et

kill -9 PID


5

Tuez PORT:

sudo est important d'afficher l'ID du processus.

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

$ kill -9 45136

5

Utilisez la commande

 netstat -plten |grep java

utilisé grep java comme tomcat utilise java comme processus.

Il affichera la liste des processus avec le numéro de port et l'identifiant du processus

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

le nombre avant / java est un identifiant de processus. Utilisez maintenant la commande kill pour tuer le processus

kill -9 16085

-9 implique que le processus sera tué avec force.


4

sudo fuser -n tcp -k [numéro_port]

sudo lsof -t -i: [numéro_port]


3

Utilisez-le pour tuer le processus qui s'exécute sur le numéro de port "9001"

 kill $(lsof -t -i:9001)

Redondant avec d'autres exemples, y compris la réponse acceptée.
Kenster

3

Essaye ça:

lsof -i :port

or 

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

or

kill -9 <pid>

or 

sh killport 8000

Je suis sur Ubuntu 17 et kill -9 <pid>a très bien fonctionné pour moi!
protoEvangelion

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

vous n'avez pas besoin d'ajouter l' -9option de signal


1

Son processus en deux étapes:

  1. Connaître l'identifiant du processus sur le port no. 8080 (peut être n'importe lequel)
  2. Tuer le processus de cet identifiant 8689 (peut être différent)

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

1

vous pouvez travailler cela en utilisant le nœud

npm install freethenport -g

puis

node freethenport 9001

1

Affiche les connexions TCP actives, les ports sur lesquels l'ordinateur écoute.

netstat -tupln

Il vous listera toute la connexion le long de pid. Recherchez et copiez le pid et exécutez la commande suivante. Assurez-vous de remplacer l'id réel par la commande suivante.

kill -9 <copied pid>

-9 à utiliser pour couper la connexion avec force.


1

Essayez de sudo fuser PORT/tcp -k remplacer PORTpar le port que vous souhaitez tuer, par exemple80


0

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

peut être utilisé pour tuer le processus. Vous pouvez utiliser n'importe quel numéro de port au lieu de 9001


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.