linux - procesos - matar puertos en windows
¿Cómo matar un proceso que se ejecuta en un puerto particular en Linux? (16)
lsof -i tcp:8000
Este comando enumera la información sobre el proceso que se ejecuta en el puerto 8000kill -9 [PID]
Este comando mata el proceso
Intenté cerrar el tomcat utilizando ./shutdown.sh
del directorio tomcat /bin
. Pero encontró que el servidor no estaba cerrado correctamente. Y así no pude reiniciar
Mi gato se está ejecutando en el puerto 8080
.
Quiero matar el proceso tomcat que se ejecuta en 8080
. Primero quiero tener la lista de procesos que se ejecutan en un puerto específico (8080) para seleccionar qué proceso matar.
En Windows, será netstat -ano | grep "8080"
netstat -ano | grep "8080"
y recibimos el siguiente mensaje TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 10076
NOSOTROS podemos matar el PID usando taskkill /F /PID 10076
Este fuser 8080/tcp
imprimirá su PID del proceso enlazado en ese puerto.
Y este fuser -k 8080/tcp
matará ese proceso.
Funciona solo en Linux. Más universal es el uso de lsof -i4
(o 6 para IPv6).
Esto imprime a la salida estándar de los identificadores de proceso de todo lo que se ejecuta en <port_number>
:
fuser -n tcp <port_number>
También imprime algunas cosas para stderr, así que:
fuser -n tcp <port_number> 2> /dev/null
Entonces podemos suministrar estos identificadores de proceso al comando kill
:
sudo kill $(fuser -n tcp <port_number> 2> /dev/null)
También puedes poner esto en una función si lo haces mucho:
function killport() {
sudo kill $(fuser -n tcp $1 2> /dev/null)
}
Para listar cualquier proceso escuchando el puerto 8080:
lsof -i:8080
Para matar cualquier proceso escuchando el puerto 8080:
kill $(lsof -t -i:8080)
o más violentamente:
kill -9 $(lsof -t -i:8080)
( -9
corresponde a SIGKILL - terminate immediately/hard kill
señal de SIGKILL - terminate immediately/hard kill
forzada: consulte la Lista de señales de SIGKILL - terminate immediately/hard kill
y ¿Cuál es el propósito de la opción -9 en el comando de eliminación? ... Si no se especifica ninguna señal para kill
, la señal TERM, también conocida como -15
o se envía un soft kill
, que a veces no es suficiente para matar un proceso).
Puedes usar el comando lsof. Deja el número de puerto como aquí es 8090
lsof -i:8090
Este comando devuelve una lista de procesos abiertos en este puerto.
Algo como…
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ssh 75782 eoin 5u IPv6 0x01c1c234 0t0 TCP localhost:8090 (LISTEN)
Para liberar el puerto, elimine el proceso usándolo (la identificación del proceso es 75782) ...
kill -9 75782
Este funcionó para mí. Aquí está el enlace de la publicación original: link
Si desea finalizar un proceso que se ejecuta en el número de puerto 8080, primero debe encontrar el número de identificación del proceso (PID) del 8080 y luego eliminarlo. Ejecute el siguiente comando para encontrar el PID del número de puerto 8080:
sudo lsof -t -i:8080
Aquí,
- sudo - comando para pedir privilegios de administrador (ID de usuario y contraseña).
- lsof - lista de archivos (también se usa para enumerar procesos relacionados)
- -t - muestra solo ID de proceso
- -i - Mostrar solo el proceso relacionado con las conexiones de internet.
- : 8080 - muestra solo procesos en este número de puerto
Así que ahora puedes matar fácilmente tu PID usando el siguiente comando:
sudo kill -9 <PID>
Aquí,
- matar - comando para matar el proceso
- -9 - a la fuerza
Puede usar un comando para matar un proceso en un puerto específico usando el siguiente comando:
sudo kill -9 $(sudo lsof -t -i:8080)
Para más información, puede ver el siguiente enlace Cómo eliminar un proceso en un puerto específico en Linux
Usa el comando
sudo netstat -plten |grep java
usó grep java
como tomcat
usa java
como sus procesos.
Mostrará la lista de procesos con número de puerto e ID de proceso.
tcp6 0 0 :::8080 :::* LISTEN
1000 30070621 16085/java
el número antes de /java
es un id de proceso. Ahora usa el comando kill para matar el proceso
kill -9 16085
-9
implica que el proceso será matado a la fuerza.
Yo agregaría esta frase única para solo ESCUCHAR en un puerto específico:
kill -9 $(lsof -t -i:3000 -sTCP:LISTEN)
para construir sobre lo que dijo @ :
Si quieres saber qué había en el puerto, haz esto antes de matarlo.
$ sudo netstat -plten |grep java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 1000 906726 25296/java
tcp6 0 0 :::8009 :::* LISTEN 1000 907503 25296/java
tcp6 0 0 :::8080 :::* LISTEN 1000 907499 25296/java
$ ps 25296
PID TTY STAT TIME COMMAND
25296 ? Sl 0:16 /usr/lib/jvm/java-8-openjdk-amd64/bin/java -Dcatalina.base=/hom
Use ''ps'' y el número del proceso que netstat informó
prueba de esta manera,
sudo fuser -n tcp -k 8080
kill -9 `fuser 8080/tcp|xargs -n 1`
, este comando también mata el proceso que escucha en el puerto 8080 con conexión TCP
Linux : primero puede encontrar el PID de este comando si conoce el puerto:
netstat -tulpn
ejemplo:-
Local Address Foreign Address State PID/Program name
:::3000 :::* LISTEN 15986/node
Entonces tomas el proceso de matar. ejecute el siguiente comando:
matar -9 PID
Ejemplo: -
matar -9 15986
Linux : puede usar este comando si conoce el puerto:
netstat -plten | grep LISTEN | grep 8080
AIX :
netstat -Aan | grep LISTEN | grep 8080
Luego toma la primera columna (ejemplo: f100050000b05bb8) y ejecuta el siguiente comando:
rmsock f100050000b05bb8 tcpcb
proceso de matanza.
Para saber el pid de servicio que se ejecuta en un puerto particular:
netstat -tulnap | grep :*port_num*
Obtendrá la descripción de ese proceso. Ahora usa kill o kill -9 pid. Fácilmente asesinado.
p.ej
netstat -ap | grep :8080
tcp6 0 0 :::8080 :::* LISTEN 1880/java
Ahora:
kill -9 1880
Recuerda ejecutar todos los comandos como root
sudo apt-get install psmisc (or sudo yum install psmisc)
sudo fuser 80/tcp
Resultado: 80 / tcp: 1858 1867 1868 1869 1871
Matar proceso uno por uno
matar -9 1858