Traté de cerrar el tomcat usando ./shutdown.sh
del /bin
directorio 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/tcp
imprimirá su PID del proceso vinculado a ese puerto.Y esto
fuser -k 8080/tcp
matará 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 psmisc
Para enumerar cualquier proceso que escuche el puerto 8080:
Para matar cualquier proceso que escuche el puerto 8080:
o más violentamente:
(
-9
Corresponde a laSIGKILL - terminate immediately/hard kill
señ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-15
osoft kill
se envía, que a veces no es suficiente para matar un proceso.).fuente
sudo
sudo lsof -i:8080
.Usa el comando
usado
grep java
comotomcat
usosjava
como sus procesos.Mostrará la lista de procesos con el número de puerto y la identificación del proceso
El número anterior
/java
es una identificación de proceso. Ahora usa elkill
comando para matar el proceso-9
implica 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
kill
comando: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 :8080
Ahora:
Recuerde ejecutar todos los comandos como
root
fuente
Un trazador de líneas
explicación aquí: use una combinación de
lsof and kill
seleccione pid y use
kill
fuente
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:8000
Este 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
sudo
si 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/mosquitto
que usa el puerto 1883.Por último, maté el proceso:
Solía
systemctl
becuase 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 -lt
fuser <port number>/tcp
kill <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 10076
Podemos matar el PID usando
taskkill /F /PID 10076
fuente