2009-04-15 10 views

Répondre

7

Tuez le processus qui écoute le port en question. Je crois que netstat vous montre les identifiants de processus.

+3

-anp netstat | grep la dernière colonne est le processus – user1747935

0

Je pense que le seul moyen sera d'arrêter le processus qui a ouvert le port.

9

La commande "netstat --programs" vous donnera les informations de processus, en supposant que vous êtes root. Ensuite, vous devrez tuer le processus "offensant" qui pourrait bien recommencer juste pour vous embêter :-).

Qu'essayez-vous d'accomplir ici? Les solutions varient en fonction des processus qui détiennent ces ports.

160

Comme les autres l'ont dit, vous devrez tuer tous les processus qui écoutent sur ce port. La façon la plus simple de le faire serait d'utiliser la commande fuser (1). Par exemple, pour voir tous les processus d'écoute des requêtes HTTP sur le port 80 (exécuté en tant que root ou utilisez sudo):

# fuser 80/tcp 

Si vous voulez les tuer, puis il suffit d'ajouter l'option -k.

+1

j'ai trouvé que l'envoi d'une requête au port nettoie aussi (i je ne suis pas un expert de Linux) –

+1

Pour installer le fuser sur Debian: sudo apt-get install psmisc (http://bitflop.com/document/107) – Korneel

+1

Cela a fonctionné, mais j'ai aussi dû installer psmisc sur CentOs 7 ('sudo yum install psmisc') –

2

Si vous voulez vraiment tuer un processus immédiatement, vous lui envoyez un signal KILL au lieu d'un signal TERM (ce dernier une demande d'arrêt, le premier prendra effet immédiatement sans aucun nettoyage). Il est facile à faire:

kill -KILL <pid> 

Soyez conscient toutefois que, selon le programme que vous arrêtez, son état peut se mal corrompu en le faisant. Normalement, vous ne voulez envoyer un signal KILL que lorsque la terminaison normale ne fonctionne pas. Je me demande quel est le problème sous-jacent que vous essayez de résoudre et si le meurtre est la bonne solution.

-4

killall -9 sudo « nom du processus »

-12

Arrêt de l'ordinateur tue toujours le processus pour moi.

+0

l'arrêt d'une machine serveur est rar e. – waqas

+13

avez-vous reçu votre badge "le plus drôle"? – jplandrain

+0

Pas besoin d'éteindre votre ordinateur. –

12

Vous pouvez utiliser tcpkill (partie du paquet dsniff) pour tuer la connexion qui est sur le port dont vous avez besoin:

sudo tcpkill -9 port PORT_NUMBER 
+0

C'est la seule méthode qui a fonctionné pour moi. – brousch

+5

cela bloque '$ sudo tcpkill -9 port 5432 tcpkill: écoute sur lxcbr0 [port 5432]' – Anentropic

40

Dangereusement un port spécifique à Linux, utilisez ci-dessous commande

sudo fuser -k Port_Number/tcp 

remplacez Port_Number par votre port occupé.

+1

Cela tue réellement le processus qui a ouvert le port et non le port lui-même. – vinayc

3

Dans le type de terminal:

netstat -anp|grep "port_number"

Il montrera les détails du port. Aller à la dernière colonne Ce sera dans ce format.Par exemple: - PID/java

puis Execute:

kill -9 PID. Worked on Centos5

+0

évidemment cela ne fonctionne pas si la colonne PID est vide pour ce port – Anentropic

+1

... et cela se produit si vous n'avez pas la permission de voir le processus ... essayez 'sudo netstat' pour voir réellement les PID :) – Anentropic

+0

ne fonctionne pas sur mac –

Questions connexes