¿Por qué no sale netstat a menos que le dé la bandera n?
Playa Jared
2
@JaredBeach: está esperando la resolución de nombres DNS inversa, por lo que finalmente terminará una vez que se hayan agotado los tiempos de espera. Si esto se cuelga de las direcciones IP internas , entonces sugiere un problema con sus servidores DNS locales.
Steve Friedl
7
Si desea hacer esto mediante programación, puede usar algunas de las opciones que se le brindan de la siguiente manera en un script de PowerShell:
Sin embargo; tenga en cuenta que cuanto más preciso pueda ser, más preciso será el resultado de su PID. Si sabe en qué host se supone que está el puerto, puede reducirlo mucho. netstat -aon | findstr "0.0.0.0:9999"solo devolverá una aplicación y muy probablemente la correcta. Solo buscar el número de puerto puede hacer que devuelva procesos que solo tienen 9999, como este:
El candidato más probable suele terminar primero, pero si el proceso ha finalizado antes de ejecutar el script, puede terminar con el PID 12331 y eliminar el proceso incorrecto.
Después de jugar un poco con un guión llegué a esta acción. Cópielo y guárdelo en un archivo .bat:
FOR /F "usebackq tokens=5" %%i IN (`netstat -aon ^| find "3306"`) DO taskkill /F /PID %%i
Cambie 'find "3306"' en el número de puerto que debe estar libre. Luego ejecute el archivo como administrador. Matará todos los procesos que se ejecutan en este puerto.
Respuestas:
Simplemente abra un shell de comandos y escriba (diciendo que su puerto es 123456):
Verás todo lo que necesitas.
Los encabezados son:
fuente
nestat -aon | findstr 123456
Busque el PID de un proceso que utiliza un puerto en Windows (por ejemplo, puerto: "9999")
-a
Muestra todas las conexiones y puertos de escucha.-o
Muestra el ID del proceso propietario asociado con cada conexión.-n
Muestra direcciones y números de puerto en forma numérica.Salida:
Luego mata el proceso por PID
/F
- Especifica terminar forzosamente el (los) proceso (s).Nota: es posible que necesite un permiso adicional (ejecutado por el administrador) para eliminar algunos procesos determinados
fuente
Si desea hacer esto mediante programación, puede usar algunas de las opciones que se le brindan de la siguiente manera en un script de PowerShell:
Sin embargo; tenga en cuenta que cuanto más preciso pueda ser, más preciso será el resultado de su PID. Si sabe en qué host se supone que está el puerto, puede reducirlo mucho.
netstat -aon | findstr "0.0.0.0:9999"
solo devolverá una aplicación y muy probablemente la correcta. Solo buscar el número de puerto puede hacer que devuelva procesos que solo tienen9999
, como este:El candidato más probable suele terminar primero, pero si el proceso ha finalizado antes de ejecutar el script, puede terminar con el PID 12331 y eliminar el proceso incorrecto.
fuente
Después de jugar un poco con un guión llegué a esta acción. Cópielo y guárdelo en un archivo .bat:
Cambie 'find "3306"' en el número de puerto que debe estar libre. Luego ejecute el archivo como administrador. Matará todos los procesos que se ejecutan en este puerto.
fuente
Mando:
Salida:
Ahora corte el ID de proceso, "10396", usando el
for
comando en Windows.Mando:
Salida:
10396
Si desea cortar el cuarto número del valor significa "ESCUCHAR", entonces comando en Windows.
Mando:
Salida:
ESCUCHANDO
fuente
Esto ayuda a encontrar PID usando el número de puerto.
fuente
'lsof' is not recognized as an internal or external command.
PowerShell (compatible con Core) de una sola línea para facilitar los escenarios de copiar y pegar:
Salida:
Mismo código, amigable para desarrolladores:
fuente