GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo matar el proceso de ejecución de Linux en un puerto particular

En Linux, los procesos y los puertos tienen una relación simbiótica. Uno no puede existir ni funcionar sin el otro. Los procesos tienden a compartir puertos y algunos procesos dependen de un puerto específico para cumplir con un objetivo del sistema operativo.

Esta guía de artículo le brinda un tutorial sobre cómo liberar un puerto utilizado por un proceso para usarlo en otro proceso.

Cómo listar un puerto con su proceso asociado

Si puede enumerar un puerto objetivo y un proceso PID , puede matar el proceso asociado con él. Hay varias herramientas que puede usar para enumerar los puertos utilizados activamente en Linux.

Una recomendación o enfoque más flexible es a través del comando de estadísticas de red (netstat) o comando ss (más rápido que netstat ). Es una instalación predeterminada en la mayoría de las distribuciones de Linux, pero puede instalarla con el siguiente comando si no está presente.

Instalar Netstat y Comando SS en Linux

$ sudo apt-get install net-tools iproute   [On Debian/Ubuntu & Mint] 
$ sudo dnf install net-tools iproute       [On CentOS/RHEL/Fedora and Rocky Linux/AlmaLinux]
$ pacman -S netstat-nat iproute            [On Arch Linux]
$ emerge sys-apps/net-tools iproute        [On Gentoo]
$ sudo dnf install net-tools iproute       [On Fedora]
$ sudo zypper install net-tools iproute    [On openSUSE]

Para enumerar un puerto y averiguar si está bloqueado para un proceso o servicio en particular, siga la siguiente regla de sintaxis.

$ sudo netstat -ltnp | grep -w ':[targeted_port]'
OR
$ ss -ltnp | grep -w ':[targeted_port]'

Por ejemplo, procesos o servicios escuchando el puerto 80 se pueden enumerar de la siguiente manera.

$ sudo netstat -ltnp | grep -w ':80'
OR
$ ss -ltnp | grep -w ':80'

Bajo la cadena de comando “netstat -ltnp ”, la opción -p apunta a 1520 que es el PID del proceso que desea eliminar. Toma nota de ello.

Cómo crear un proceso ficticio en Linux

Para no interferir con el ecosistema de su sistema operativo Linux, crearemos algunos procesos ficticios y los utilizaremos para demostrar el objetivo de este artículo. Usaremos el “socat ” utilidad de línea de comandos para crear nuestros procesos de demostración.

Tengamos tres procesos bajo SCTP , TCP y UDP protocolos respectivamente. Vamos a vincular estos nuevos procesos a un puerto aleatorio como 9999 .

El siguiente comando generará un proceso temporal con un PID (ID de proceso ) de 8695 .

$ socat sctp-listen:9999,bind=127.0.0.1 stdout &

El siguiente comando generará un proceso temporal con un PID (ID de proceso) de 9080 .

$ socat tcp-listen:9999,bind=127.0.0.1 stdout &

El siguiente comando generará un proceso temporal con un PID (ID de proceso) de 9270 .

$ socat udp-listen:9999,bind=127.0.0.1 stdout &

Cómo Matar un Proceso con su PID (Process ID)

Usando el "kill -9" comando, podemos deshacernos de un proceso que tiene como rehén un número de puerto que queremos usar en otro proceso priorizado. En este caso, creamos tres procesos con PIDs 8695 , 9080 y 9270 .

Para matar el proceso bajo PID 8695 , ejecuté el siguiente comando:

$ kill -9 8695

Incluso podemos eliminar más de un proceso a la vez. Para matar los procesos creados con PIDs 9080 y 9270 , use un comando similar a este:

$ kill -9 9080 9270

Ya sea que esté eliminando un proceso o más de un proceso al mismo tiempo, la ejecución del comando de eliminación debería conducir a una instancia de terminal vacía como se muestra arriba.

Para confirmar que los procesos ya no están activos, intentaremos volver a ejecutar el comando kill :

$ kill -9 8695

Un mensaje de error indicará que el proceso ya no está activo. Además, los dos procesos recientemente eliminados [2] 9080 y [3] 9270 se muestran como ya no activos.

Nota final

Las reglas para matar un proceso en ejecución son simples. Primero, identifique el puerto que desea usar a través del “netstat ” o “ss” comando y luego tome nota del PID adjunto al proceso. Finalmente, usa el “kill -9” comando junto con el PID identificado para deshacerse de ese proceso.


Linux
  1. ¿Cómo reiniciar (o restablecer) un proceso en ejecución en Linux?

  2. Cómo matar procesos en ejecución en Linux

  3. ¿Cómo eliminar un proceso que se ejecuta en un puerto específico en Linux?

  4. ¿Cómo cerrar rmiregistry ejecutándose en un puerto en particular?

  5. ¿Cómo matar un proceso que se ejecuta en un puerto particular en Linux?

Cómo enumerar los procesos en ejecución en Linux:una guía para principiantes

Cómo matar un proceso en Linux

Comando matar en Linux

Cómo matar procesos Zombie en Linux

Cómo encontrar y matar procesos en ejecución en Linux

Cómo MATAR un proceso en Linux