Traté de cerrar el tomcat usando ./shutdown.shdel /bindirectorio tomcat . Pero descubrió que el servidor no estaba cerrado correctamente. Y, por lo tanto, no pude reiniciar
Mi Tomcat se está ejecutando en el puerto 8080.
Quiero matar el proceso de Tomcat que se está ejecutando 8080. Primero quiero tener la lista de procesos ejecutándose en un puerto específico (8080) para seleccionar qué proceso matar.
linux
unix
port
kill-process
veer7
fuente
fuente

Respuestas:
Esto
fuser 8080/tcpimprimirá su PID del proceso vinculado a ese puerto.Y esto
fuser -k 8080/tcpmatará ese proceso.Funciona solo en Linux. Más universal es el uso de
lsof -i4(o 6 para IPv6).fuente
fuser. Solo toma un archivo, no es compatible-k.fuser: command not found, instale psmisc. Para CentOS / RHEL 7, ejecutesudo yum install psmiscPara enumerar cualquier proceso que escuche el puerto 8080:
Para matar cualquier proceso que escuche el puerto 8080:
o más violentamente:
(
-9Corresponde a laSIGKILL - terminate immediately/hard killseñal: ver Lista de señales de finalización y ¿Cuál es el propósito de la opción -9 en el comando kill? Si no se especifica ninguna señal al.kill, La señal TERM alias-15osoft killse envía, que a veces no es suficiente para matar un proceso.).fuente
sudosudo lsof -i:8080.Usa el comando
usado
grep javacomotomcatusosjavacomo sus procesos.Mostrará la lista de procesos con el número de puerto y la identificación del proceso
El número anterior
/javaes una identificación de proceso. Ahora usa elkillcomando para matar el proceso-9implica que el proceso será asesinado a la fuerza.fuente
netstat.Añadiría este one-liner para matar solo LISTEN en un puerto específico:
kill -9 $(lsof -t -i:3000 -sTCP:LISTEN)fuente
Puedes usar el comando lsof. Deje que el número de puerto como aquí es 8090
Este comando devuelve una lista de procesos abiertos en este puerto.
Algo como…
Para liberar el puerto, elimine el proceso usándolo (la identificación del proceso es 75782) ...
Este me funcionó. Aquí está el enlace de la publicación original: enlace
fuente
Si desea eliminar 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 puerto 8080 y luego eliminarlo. Ejecute el siguiente comando para encontrar el número de puerto 8080 PID:
Aquí,
Entonces ahora puede matar fácilmente su PID usando el siguiente comando:
Aquí,
Puede usar un comando para matar un proceso en un puerto específico usando el siguiente comando:
Para más información, puede ver el siguiente enlace Cómo matar un proceso en un puerto específico en Linux
fuente
sudo kill -9 $(sudo lsof -t -i:8080)funcionó para míLa mejor manera de matar todos los procesos en un puerto específico;
fuente
Esto se imprime para mostrar los identificadores de proceso de todo lo que se ejecuta en
<port_number>:También imprime algunas cosas en stderr, así que:
Entonces podemos suministrar estos identificadores de proceso al
killcomando:También podría poner esto en una función si lo hace mucho:
fuente
Obtenga el PID de la tarea y elimínelo.
fuente
lsof -ti:8080-8089 | xargs kill.Para conocer el pid del servicio que se ejecuta en un puerto en particular:
Obtendrá la descripción de ese proceso. Ahora usa kill o kill -9 pid. Fácilmente asesinado.
p.ej
netstat -ap | grep :8080Ahora:
Recuerde ejecutar todos los comandos como
rootfuente
Un trazador de líneas
explicación aquí: use una combinación de
lsof and killseleccione pid y use
killfuente
intenta así,
fuente
Elija el número de puerto y aplique el comando grep en netstat como se muestra a continuación
Salida de la consola
Eliminar el servicio basado en PID (Número de identificación del proceso)
fuente
lsof -i tcp:8000Este comando enumera la información sobre el proceso que se ejecuta en el puerto 8000kill -9 [PID]Este comando mata el procesofuente
Linux : Primero puede encontrar el PID de este comando si conoce el puerto:
ejemplo:-
Luego tomas el proceso de matar. ejecuta el siguiente comando:
matar -9 PID
Expample: -
matar -9 15986
fuente
Linux : puede usar este comando si conoce el puerto:
AIX :
Luego toma la primera columna (ejemplo: f100050000b05bb8) y ejecuta el siguiente comando:
proceso de matanza.
fuente
Puede conocer la lista de todos los puertos que se ejecutan en el sistema junto con sus detalles (pid, dirección, etc.):
Puede conocer los detalles de un número de puerto en particular al proporcionar el número de puerto en el siguiente comando:
Ej: sudo netstat -lutnp | grep -w '8080' Los detalles se proporcionarán así:
si quieres matar un proceso usando pid entonces :
kill -9 {PID}si quieres matar un proceso usando el número de puerto :
fuser -n tcp {port_number}utilícelo
sudosi no puede acceder a ninguno.fuente
kill -9 `fuser 8080/tcp|xargs -n 1`, estos comandos también eliminan el proceso que escucha en el puerto 8080 con conexión TCPfuente
Resultado: 80 / tcp: 1858 1867 1868 1869 1871
Proceso de matanza uno por uno
matar -9 1858
fuente
Estoy trabajando en un sistema Yocto Linux que tiene un conjunto limitado de herramientas Linux disponibles. Quería matar el proceso que estaba usando un puerto en particular (1883).
Primero, para ver qué puertos estamos escuchando, utilicé el siguiente comando:
Luego, encontré el nombre del proceso usando el puerto 1883 de la siguiente manera:
Como podemos ver arriba, es el programa
/usr/sbin/mosquittoque usa el puerto 1883.Por último, maté el proceso:
Solía
systemctlbecuase en este caso se trataba de un servicio systemd.fuente
En mi caso, cent os tiene algún problema en la respuesta sugerida. Entonces utilicé la siguiente solución:
fuente
para construir sobre lo que @ veer7 dijo:
si quieres saber qué había en el puerto, haz esto antes de matarlo.
Use 'ps' y el número del proceso que netstat informó de nuevo
fuente
Otra forma con Git Bash:
fuente
netstat -ltfuser <port number>/tcpkill <process id>fuente
En Windows, será
netstat -ano | grep "8080"y recibimos el siguiente mensajeTCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 10076Podemos matar el PID usando
taskkill /F /PID 10076fuente