Proceso de matar de Linux por PID

Proceso de matar de Linux por PID
En Linux (y la mayoría de los sistemas operativos modernos), terminar un proceso requiere con fuerza el envío de una señal terminal apropiada. Hay múltiples formas de enviar una señal de terminación a un proceso en particular. Si conoce el PID (ID de proceso) del proceso de destino, entonces el comando Kill puede enviarle directamente la señal de terminación.

En esta guía, demostraremos cómo matar un proceso de Linux por su PID.

PID en Linux

El término PID es un acrónimo para el "número de identificación del proceso". A cada proceso se le asigna un PID único en el momento en que se crean en el sistema. El PID número 1 está asignado a Systemd (init, para sistemas más antiguos). Esencialmente, Systemd o Init es siempre el primer proceso que se inicia en Linux y es padre a todos los demás procesos.

Hay un par de herramientas que podemos usar para obtener el PID de un proceso objetivo. El método más popular (y recomendado) para obtener el PID es usar el comando PS. Es una herramienta incorporada disponible en todos los sistemas de Linux. Obtenga más profundidad sobre el comando PS en Linux.

Para imprimir todos los procesos de ejecución con su PID, ejecute el siguiente comando PS:

$ PS -EF

Para una navegación más fácil, impida la salida al comando menos:

$ PS -EF | menos

Observe que la columna PID enumera todos los procesos ordenados por PID. Es el valor que estamos buscando.

Buscando un proceso en particular con un nombre específico? Entonces el comando GREP es tu amigo. Puede buscar un patrón particular en el archivo dado (stdout, en este caso). Por ejemplo, el siguiente comando buscará cualquier proceso de Firefox en ejecución:

$ PS -EF | Grep Firefox

Si conoce el nombre del proceso de destino, entonces podemos usar el comando Pidof para obtener directamente el PID.

$ Pidof Firefox

Otro comando interesante para hacer el trabajo es PGREP. Funciona directamente en la lista de procesos actualmente en ejecución. El comando PGREP tomará el nombre del proceso como parámetro e imprimirá el PID de cualquier entrada coincidente.

$ PGREP Firefox

Tenga en cuenta el PID del proceso objetivo. La siguiente sección de este artículo mostrará la terminación del proceso por su PID.

Matar un proceso

Matar un proceso requiere enviar una señal terminal al proceso. Sin embargo, no hay una sola señal de terminación. Hay varios de ellos, cada uno actuando ligeramente diferente a los otros. Entonces, es crucial entenderlos primero.

Linux matar señales

El comando Kill en Linux es responsable de enviar las señales de terminación. Para obtener una explicación detallada, consulte esta guía sobre el comando de Kill Linux. En resumen, le dice al comando de matar qué señal enviar a qué proceso (usando PID).

Para obtener la lista completa de todas las señales de terminación, ejecute el siguiente comando:

$ Kill -l

En su mayor parte, sin embargo, solo necesitaremos un puñado de ellos. Aquí hay explicaciones detalladas de las señales de terminación más comunes que debe conocer sobre.

  • Sigup (1) - El terminal de control está colgado o el proceso de control está muerto. En tal situación, Sigup recargará los archivos de configuración y abrirá/cerrará archivos de registro.
  • Sigkill (9) - Es una señal de muerte directa al proceso objetivo. Debe usarse como el último recurso para finalizar un proceso. Si un proceso termina utilizando Sigkill, entonces no guardará datos ni limpia al finalizar el proceso.
  • Sigterter (15) - Envía una señal de terminación al proceso de destino. Sigterm es la señal predeterminada para enviar. También se considera el método más seguro para terminar un proceso.

Matar un proceso usando matar

Esta es la forma predeterminada de terminar un proceso de destino en Linux. El comando Kill sigue la siguiente estructura de comando:

$ Kill -

Por ejemplo, para enviar Sigterm a un proceso, el comando se vería así:

$ Kill -15

Del mismo modo, si desea enviar Sigkill, use el siguiente comando:

$ Kill -9

Obtenga más información sobre el comando Linux Kill con explicaciones y ejemplos en profundidad.

Matar múltiples procesos usando Killall

El comando Killall actúa similar a Kill. Sin embargo, en lugar de definir un PID específico, utiliza el nombre del proceso y envía la señal de terminación especificada a todos los procesos que coinciden con el nombre.

La estructura de comando de Killall se ve así:

$ Killall -

Por ejemplo, el siguiente comando Killall enviará SigterT a todos los procesos de Firefox en ejecución:

$ Killall -15 Firefox

Consulte esta guía en el comando Linux Killall para obtener explicaciones detalladas con ejemplos. También se recomienda consultar la página del hombre de Killall:

$ hombre killall

Matar múltiples procesos usando pkill

Similar al comando killall, PKill también puede buscar procesos basados ​​en el nombre y enviar la señal de terminación especificada. La estructura de comando es casi similar también;

$ pkill -

Por ejemplo, use el siguiente comando PKill para terminar el proceso de Firefox con Sigterm:

$ pkill -15 Firefox

Como siempre, consulte la página del hombre de Pkill para ver las explicaciones en profundidad con todos los matices:

$ hombre pkill

Pensamientos finales

Esta guía muestra varias formas de matar un proceso por su PID. También demuestra métodos alternativos utilizando el nombre del proceso en lugar de PID. Siempre es mejor tener múltiples herramientas a su disposición. Aquí, usamos comandos PS y PGREP para encontrar los comandos PID y Kill, Pkill y Killall para matar procesos.

En muchas situaciones, es posible que desee deshacerse de los procesos de fondo molestos que están mal funcionando. Obtenga más información sobre cómo identificar procesos de fondo en Linux. Luego, siguiendo los métodos de esta guía, puede deshacerse fácilmente de los no deseados.
Computación feliz!