1368 votes

Comment tuer le processus qui utilise actuellement un port sur localhost sous Windows ?

Comment puis-je supprimer le processus/application actuel qui est déjà attribué à un port ?

Par exemple : localhost:8080

182 votes

Npx kill-port 8080

0 votes

Npx kill-port 8080 fonctionne pour moi aussi

8 votes

Apparemment, npx kill-port ne fonctionne pas du tout ou ne peut pas tuer les processus qui ont des privilèges élevés, pour Windows 10.

2822voto

KavinduWije Points 6618

Étape 1 :

Ouvrez cmd.exe (note : vous mai Vous devez l'exécuter en tant qu'administrateur, mais ce n'est pas toujours nécessaire), puis exécutez la commande suivante :

netstat -ano | findstr :<PORT>

(Remplacer <PORT> avec le numéro de port que vous voulez, mais gardez les deux points)

La zone entourée en rouge indique le PID (identificateur de processus). Localisez le PID du processus qui utilise le port que vous voulez.

Étape 2 :

Ensuite, exécutez la commande suivante :

taskkill /PID <PID> /F

(Pas de colon cette fois)

Enfin, vous pouvez vérifier si l'opération a réussi ou non en réexécutant la commande de l'"étape 1". Si l'opération a réussi, vous ne devriez plus voir de résultats de recherche pour ce numéro de port.

0 votes

@HardikMandankaa Est-ce que c'est la même processus ? Certains logiciels peuvent être configurés pour relancer le processus d'écoute s'il est tué.

80 votes

J'ai dû entrer des caractères d'échappement lors de l'exécution de taskkill : taskkill //PID 12552 //F

1 votes

La réponse acceptée ne fonctionnera pas pour les services qui sont configurés pour redémarrer en cas d'échec (ce n'est pas linux).

192voto

afsarkhan10182 Points 758

Étape 1 (la même chose est acceptée réponse écrit par KavinduWije ):

netstat -ano | findstr :yourPortNumber

Modifier l'étape 2 en :

tskill typeyourPIDhere 

Note : taskkill ne fonctionne pas dans certains terminaux git bash

6 votes

Voici la solution qui a fonctionné pour moi. J'utilise GIT Bash.

116voto

Ara Yaghsizian Points 679

Si vous utilisez GitBash

Première étape :

netstat -ano | findstr :8080

Deuxième étape :

taskkill /PID typeyourPIDhere /F 

( /F met fin avec force au processus)

3 votes

@kylexy1357 essaie avec une seule barre oblique. La "double barre oblique" est un caractère d'échappement qui précède le / et qui n'est pas nécessaire pour certains shells.

46voto

Mahesh Narwade Points 159

À utiliser en ligne de commande :

for /f "tokens=5" %a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %a

A utiliser dans le fichier bat :

for /f "tokens=5" %%a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %%a

1 votes

Si vous voulez le faire dans un .bat, remplacez %a par %%a.

1 votes

Cette réponse est la seule commande en une ligne qui a fonctionné pour moi, donc c'est vraiment bien. J'ai une tâche qui s'exécute sur deux ports et qui provoque l'erreur "ERROR : The process "6552" not found" parce que la tâche a déjà été quittée.

0 votes

Il faut descendre très bas pour obtenir une "programmatique" répondre comme ceci. BTw qu'est-ce que tokens=5 ?

34voto

todorm Points 304

Sur Windows PowerShell version 1 ou ultérieure pour arrêter un processus sur le port de type 3000 :

Stop-Process (,(netstat -ano | findstr :3000).split() | foreach {$ [$ .length-1]}) -Force


Comme suggéré par @morganpdx, voici une meilleure version, plus proche de PowerShell :

Stop-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess -Force

0 votes

'Stop-Process' is not recognized as an internal or external command,

5 votes

Je trouve que cela fonctionne : Stop-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess -Force

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X