web-dev-qa-db-fra.com

Rechercher le PID du processus utilisant un port sous Windows

Mon service plante au démarrage avec le classique:

Java.rmi.server.ExportException: Listen failed on port: 9999

Comment puis-je trouver le processus pour le tuer?

78
Thomas

Ouvrez simplement une commande Shell et tapez: (en disant que votre port est 123456)

netstat -a -n -o | find "123456"

Vous verrez tout ce dont vous avez besoin

Les en-têtes sont:

 Proto  Local Address          Foreign Address        State           PID
 TCP    0.0.0.0:37             0.0.0.0:0              LISTENING       1111
177
Thomas

Trouver le PID du processus utilisant un port sous Windows (par exemple, le port: "9999")
netstat -aon | find "9999" 

-a Affiche toutes les connexions et les ports d'écoute.

-o Affiche l'ID de processus propriétaire associé à chaque connexion.

-n Affiche les adresses et les numéros de port sous forme numérique.

sortie:
TCP 0.0.0.0:9999 0.0.0.0:0 LISTENING 15776

Puis tuer le processus par PID taskkill /F /PID 15776

/F - Spécifie de mettre fin de façon forcée au (x) processus.

Remarque: vous aurez peut-être besoin d'une autorisation supplémentaire (exécutée à partir d'admin) pour tuer certains processus

68
Andrew

Après quelques manipulations de script, je suis arrivé à cette action. Copiez-le et enregistrez-le dans un fichier .bat:

FOR /F "usebackq tokens=5" %%i IN (`netstat -aon ^| find "3306"`) DO taskkill /F /PID %%i

change 'find "3306"' dans le numéro de port qui doit être libre. Ensuite, exécutez le fichier en tant qu'administrateur. Il va tuer tous les processus en cours d'exécution sur ce port

4
Quispie

Si vous souhaitez effectuer cette opération par programme, vous pouvez utiliser certaines des options qui vous sont proposées comme suit dans un script PowerShell:

$processPID =  $($(netstat -aon | findstr "9999")[0] -split '\s+')[-1]
taskkill /f /pid $processPID

Toutefois; Sachez que plus vous serez précis, plus votre résultat PID sera précis. Si vous savez sur quel hôte le port est supposé être connecté, vous pouvez le réduire beaucoup. netstat -aon | findstr "0.0.0.0:9999" ne renverra qu'une application et très probablement la bonne. Seule la recherche sur le numéro de port peut vous amener à renvoyer des processus qui ne contiennent que 9999, comme ceci:

TCP    0.0.0.0:9999                        0.0.0.0:0       LISTENING       15776
UDP    [fe80::81ad:9999:d955:c4ca%2]:1900  *:*                             12331

Le candidat le plus probable finit généralement en premier, mais si le processus est terminé avant que vous n'exécutiez votre script, vous pouvez vous retrouver avec le PID 12331 et tuer le mauvais processus.

4
eFox

Cela aide à trouver le PID en utilisant le numéro de port. 

lsof -i tcp:port_number
2
Mahaveer Jangir

commande: netstat -aon | findstr 4723

sortie: TCP 0.0.0.0:4723 0.0.0.0:0 ÉCOUTE 10396

maintenant couper le processus id "10396" en utilisant pour la commande dans Windows.

commande: pour/f "tokens = 5"% a dans ('netstat -aon ^ | findstr 4723') fait @echo% ~ nxa

sortie: 10396

si vous voulez couper le 4ème nombre de valeur signifie "LISTENING", alors commande dans windows.

commande: pour/f "tokens = 4"% a dans ('netstat -aon ^ | findstr 4723') faire @echo% ~ nxa

sortie: ECOUTE

J'espère que ma réponse vous aidera !!

0
Pavankumar Barot