Dans Windows, que peut rechercher le port 8080 et essayer de tuer le processus qu'il utilise via un fichier .BAT?
windows
batch-file
process
kill-process
Mike Flynn
la source
la source
Réponses:
Voici une commande pour vous aider à démarrer:
Lorsque vous êtes sûr de votre fichier de commandes, supprimez
@ECHO
.Notez que vous devrez peut-être modifier légèrement cela pour différents systèmes d'exploitation. Par exemple, sur Windows 7, vous pourriez avoir besoin à la
tokens=5
place detokens=4
.Comment ça marche
Cela vous permet d'exécuter
command
et de boucler sa sortie. Chaque ligne sera remplie%variable
et peut être étendueotherCommand
autant de fois que vous le souhaitez, où vous le souhaitez.%variable
en utilisation réelle ne peut avoir qu'un nom à une seule lettre, par exemple%V
.Cela vous permet de diviser chaque ligne par un espace, de prendre le 4ème morceau de cette ligne et de le remplir
%variable
(dans notre cas,%%P
).delims
semble vide, mais cet espace supplémentaire est en fait significatif.Exécutez-le et découvrez-le. Selon l'aide de la ligne de commande, il "Affiche toutes les connexions et tous les ports d'écoute.", "Affiche les adresses et les numéros de port sous forme numérique." Et "Affiche l'ID de processus propriétaire associé à chaque connexion.". Je viens d'utiliser ces options depuis que quelqu'un d'autre l'a suggéré, et cela a fonctionné :)
Cela prend la sortie de la première commande ou programme (
netstat
) et la transmet à un deuxième programme de commande (findstr
). Si vous l'utilisiez directement sur la ligne de commande, au lieu de l'intérieur d'une chaîne de commande, vous utiliseriez à la|
place de^|
.Cela filtre toute sortie qui y est passée, ne renvoyant que les lignes contenant
:8080
.Cela tue une tâche en cours à l'aide de l'ID de processus.
Ceci est requis dans les fichiers de commandes. Si vous avez fait cela sur l'invite de commande, vous utiliseriez à la
%P
place.la source
HELP FOR
sur la ligne de commande pour voir beaucoup d'autres options quiFOR
vous donnera, et vérifiernetstat -?
,findstr /?
etTaskKill /?
pour encore plus d' aide.tokens=4
est Windows XP je pense ettokens=5
Windows 7. Aussi une bonne idée pour/F
forcer la mise à mort.Ouvrez l'invite de commande et exécutez les commandes suivantes
, ici 3116 est l'ID de processus
la source
Pour trouver un processus spécifique sur la ligne de commande, utilisez la commande ci-dessous ici 8080 est le port utilisé par le processus
pour tuer le processus, utilisez la commande ci-dessous ici 21424 est l'identifiant du processus
la source
L'utilisation de la solution de Merlyn a causé la mort d'autres applications comme Firefox. Ces processus utilisaient le même port, mais pas comme écouteur:
par exemple:
Par conséquent, vous pouvez les exclure en ajoutant "LISTENING" au findstr comme suit:
la source
Pour répertorier tous les processus exécutés sur le port 8080, procédez comme suit.
Ensuite, pour tuer le processus, exécutez la commande suivante
la source
Merci à tous, juste pour ajouter que certains processus ne se fermeront que si le commutateur de force / F est également envoyé avec TaskKill. Également avec le commutateur / T, tous les threads secondaires du processus seront fermés.
Pour les services, il sera nécessaire d'obtenir le nom du service et d'exécuter:
la source
Juste pour terminer:
Je voulais tuer tous les processus connectés à un port spécifique mais pas le processus en écoute
la commande (dans le shell cmd) pour le port 9001 est:
findstr :
netstat :
Cela fonctionne parce que netstat imprime le port source puis le port de destination, puis ESTABLISHED
la source
Créé un fichier bat avec le contenu ci-dessous, il accepte l'entrée pour le numéro de port
Enfin, cliquez sur "Entrée" pour quitter.
la source
Si vous souhaitez arrêter le processus qui écoute sur le port 8080, vous pouvez utiliser PowerShell.
Get-NetTCPConnection
Combinez simplement l' applet de commande avecStop-Process
.Testé et devrait fonctionner avec PowerShell 5 sur Windows 10 ou Windows Server 2016. Cependant, je suppose qu'il devrait également fonctionner sur les anciennes versions de Windows sur lesquelles PowerShell 5 est installé.
Voici un exemple:
la source
Similaire à la réponse de Merlyn, mais celle-ci gère également ces cas:
C'est ici:
la source
Pas:
Accédez au
conf
dossier de votre serveur apache tomcat . Dans mon cas, c'estapache-tomcat-7.0.61\conf
comme j'utilise apache-tomcat-7.0.61Ouvrez
server.xml
et changez le numéro de port de 8080 à n'importe quel autre port comme vous le souhaitez. Par exemple: 8081,8082,8087 etc.Maintenant, allez dans le
bin
dossier et exécutezshutdown.bat
Redémarrez maintenant le serveur via eclipse.
Maintenant, votre projet fonctionnera sans aucune interruption.
la source
Si quelqu'un recherche un script Powershell:
Cette fonction fait essentiellement ce que font les fonctions ci-dessus, mais elle est au format de script Powershell afin que vous puissiez l'ajouter à votre profil Powershell. Pour trouver l'emplacement de votre profil, accédez à PowerShell et tapez
echo $profile
la source
netstat
.Collez ceci dans la ligne de commande
Si vous souhaitez l'utiliser dans un batch pu
%%P
au lieu de%P
la source
netstat
outil est traduit dans d'autres languessi vous par système, vous ne pouvez pas terminer la tâche. essayez cette commande
x:> arrêt net http / y
la source