En Windows, ¿qué puede buscar el puerto 8080 e intentar eliminar el proceso que está utilizando a través de un archivo .BAT?
windows
batch-file
process
kill-process
Mike Flynn
fuente
fuente
Respuestas:
Aquí hay un comando para comenzar:
Cuando esté seguro de su archivo por lotes, elimínelo
@ECHO
.Tenga en cuenta que es posible que deba cambiar esto ligeramente para diferentes sistemas operativos. Por ejemplo, en Windows 7 puede necesitar en
tokens=5
lugar detokens=4
.Como funciona esto
Esto le permite ejecutar
command
y recorrer su salida. Cada línea se rellenará%variable
y se puede expandirotherCommand
tantas veces como desee, donde quiera.%variable
en uso real solo puede tener un nombre de una sola letra, por ejemplo%V
.Esto le permite dividir cada línea por espacios en blanco, y tomar el cuarto trozo en esa línea, y meterlo en
%variable
(en nuestro caso,%%P
).delims
parece vacío, pero ese espacio extra es realmente significativo.Solo ejecútalo y descúbrelo. De acuerdo con la ayuda de la línea de comandos, "Muestra todas las conexiones y puertos de escucha", "Muestra las direcciones y los números de puerto en forma numérica" y "Muestra el ID del proceso propietario asociado con cada conexión". Acabo de usar estas opciones ya que alguien más lo sugirió, y resultó que funcionaba :)
Esto toma la salida del primer comando o programa (
netstat
) y lo pasa a un segundo programa de comando (findstr
). Si estuviera usando esto directamente en la línea de comando, en lugar de dentro de una cadena de comando, lo usaría en|
lugar de^|
.Esto filtra cualquier salida que se le pase, devolviendo solo las líneas que contienen
:8080
.Esto mata una tarea en ejecución, utilizando la ID del proceso.
Esto es obligatorio en los archivos por lotes. Si hiciste esto en el símbolo del sistema, lo utilizarías
%P
en su lugar.fuente
HELP FOR
en la línea de comandos para ver un montón de otras opciones queFOR
le dará, y comprobarnetstat -?
,findstr /?
yTaskKill /?
para aún más ayuda.tokens=4
Creo que es Windows XP ytokens=5
Windows 7. También es una buena idea/F
forzar el asesinato.Abra el símbolo del sistema y ejecute los siguientes comandos
, aquí 3116 es el ID del proceso
fuente
Para encontrar un proceso específico en la línea de comando, use el siguiente comando aquí 8080 es el puerto utilizado por el proceso
para matar el proceso use el siguiente comando aquí 21424 es la identificación del proceso
fuente
El uso de la solución de Merlyn provocó la eliminación de otras aplicaciones como Firefox. Estos procesos estaban usando el mismo puerto, pero no como un oyente:
p.ej:
Por lo tanto, puede excluirlos agregando "LISTENING" al FindStr de la siguiente manera:
fuente
Para enumerar todo el proceso que se ejecuta en el puerto 8080, haga lo siguiente.
Luego, para matar el proceso, ejecute el siguiente comando
fuente
Gracias a todos, solo por agregar que algún proceso no se cerrará a menos que el modificador de fuerza / F también se envíe con TaskKill. También con el interruptor / T, se cerrarán todos los subprocesos secundarios del proceso.
Para los servicios será necesario obtener el nombre del servicio y ejecutar:
fuente
Solo para completar:
Quería matar todos los procesos conectados a un puerto específico pero no el proceso de escucha
El comando (en cmd shell) para el puerto 9001 es:
Findstr :
netstat :
Funciona porque netstat imprime el puerto de origen, luego el puerto de destino y luego ESTABLECIDO
fuente
Creó un archivo bat con el contenido a continuación, acepta la entrada para el número de puerto
Finalmente haga clic en "Enter" para salir.
fuente
Si desea eliminar el proceso que está escuchando en el puerto 8080, puede usar PowerShell. Simplemente combine
Get-NetTCPConnection
cmdlet conStop-Process
.Probado y debería funcionar con PowerShell 5 en Windows 10 o Windows Server 2016. Sin embargo, supongo que también debería funcionar en versiones anteriores de Windows que tengan instalado PowerShell 5.
Aquí hay un ejemplo:
fuente
Similar a la respuesta de Merlyn, pero este también maneja estos casos:
Aquí está:
fuente
Pasos:
Vaya a la
conf
carpeta de su servidor apache tomcat . En mi caso, esapache-tomcat-7.0.61\conf
como estoy usando apache-tomcat-7.0.61Abra
server.xml
y cambie el número de puerto de 8080 a cualquier otro puerto que desee. Por ejemplo: 8081,8082,8087 etc.Ahora ve a la
bin
carpeta y ejecutashutdown.bat
Ahora reinicie el servidor a través de eclipse.
Ahora su proyecto funcionará sin ninguna interrupción.
fuente
Si alguien está buscando un Script Powershell:
Esta función básicamente hace lo que hacen las funciones anteriores, pero está en el formato de secuencia de comandos de Powershell para que pueda agregarla a su perfil de Powershell. Para encontrar la ubicación de su perfil, vaya a powershell y escriba
echo $profile
fuente
netstat
herramienta envolvente basada en PowerShell .Pegue esto en la línea de comando
Si desea usarlo en un lote de pu en
%%P
lugar de%P
fuente
netstat
herramienta está traducida a otros idiomassi por sistema no puede finalizar la tarea. prueba este comando
x:> parada neta http / y
fuente