Búsqueda de sitios web

Cómo eliminar el proceso de Linux usando Kill, Pkill y Killall


En Linux, matar un proceso se refiere a finalizar o detener la ejecución de un programa en ejecución. A cada proceso en ejecución se le asigna un número de identificación único conocido como ID de proceso (PID), que ayuda al sistema a realizar un seguimiento de los procesos actualmente activos.

En este artículo, descubriremos el proceso de eliminación de Linux y cómo encontrar y finalizar un proceso utilizando diferentes herramientas y comandos en Linux.

¿Cuál es el proceso de Linux?

En términos simples, un proceso es como un programa que se está ejecutando actualmente en un sistema y cada proceso tiene su propio número de identificación especial (PID). Sin embargo, a veces un programa o proceso en ejecución puede comportarse mal, dejar de responder o consumir demasiados recursos del sistema.

Cuando eso sucede, necesitamos detener o “matar” el proceso y aquí es donde el comando Kill resulta útil.

¿Qué es el comando matar?

El comando “kill” es una utilidad crucial que permite a los usuarios enviar señales (detener o finalizar) a los procesos que se están ejecutando actualmente, indicándoles que salgan con gracia o finalicen con fuerza.

El comando kill es útil cuando necesita administrar y controlar las actividades de diferentes programas en su sistema Linux, como por ejemplo:

  • Detener cualquier proceso automatizado.
  • Detener un proceso que se ha iniciado por accidente.
  • Para detener un proceso que utiliza demasiada memoria.
  • Para finalizar por la fuerza cualquier proceso en ejecución en Linux.
  • Para detener un proceso que se ejecuta en segundo plano.

El uso del comando kill de /usr/bin le proporciona algunas funciones adicionales para finalizar un proceso por nombre de proceso usando pkill, que identifica los procesos por sus nombres.

Cómo encontrar el ID del proceso o el nombre del proceso

Antes de finalizar un proceso en ejecución, es esencial identificar su ID de proceso (PID) o nombre usando el siguiente comando ps que muestra información sobre todos los procesos en ejecución en el sistema con su PID (ID de proceso) y otra información.

ps -ef

Si desea encontrar un nombre de proceso específico PID, puede usar un comando grep que enumerará todos los procesos que se ejecutan en el sistema y filtrará los resultados para mostrar solo aquellos que contengan el término “mariadb “.

ps -ef | grep mariadb

Alternativamente, puede encontrar directamente el PID de un proceso por nombre usando el comando pgrep como se muestra.

pgrep mariadb

Cómo matar un proceso en Linux

Antes de matar, detener o finalizar un proceso, piense en los permisos. Si es usuario root, puede detener cualquier proceso, pero si es un usuario normal, debe agregar un “sudo” antes del comando o cambiar a root con “ su” para utilizar el comando de terminación.

La sintaxis común para el comando Kill es:

kill [signal or option] PID(s)
OR
sudo kill [signal or option] PID(s)

Para un comando de interrupción, un nombre de señal podría ser:

Claramente por el comportamiento anterior:

  • SIGTERM es la forma predeterminada y más segura de finalizar un proceso.
  • SIGHUP es una forma menos segura de finalizar un proceso que SIGTERM.
  • SIGKILL es la forma más insegura entre las tres anteriores para finalizar un proceso que finaliza sin guardar.

En Linux, existen diferentes señales que puede utilizar para detener, finalizar o pausar procesos. Puede enumerar todas las señales de muerte disponibles con sus nombres y números correspondientes usando el siguiente comando, que enumerará

kill -l

Si bien hay múltiples señales disponibles, en la mayoría de los casos solo usamos SIGKILL (9) y SIGTERM (15).

Para finalizar un proceso, necesitamos saber el ID de proceso de un proceso. Un Proceso es una instancia de un programa. Cada vez que se inicia un programa, automáticamente se genera un PID único para ese proceso.

Cada proceso en Linux tiene un pid. El primer proceso que se inicia cuando se inicia el sistema Linux es el – proceso init, por lo que se le asigna un valor de '1' en la mayoría de los casos.

Init es el proceso maestro y no se puede finalizar de esta manera, lo que garantiza que el proceso maestro no finalice accidentalmente. Init decide y se deja matar, donde matar es simplemente una solicitud de cierre.

Antes de dar un paso adelante y ejecutar un comando de eliminación, debemos tener en cuenta algunos puntos importantes:

  • Un usuario puede matar todos sus procesos.
  • Un usuario no puede matar el proceso de otro usuario.
  • Un usuario no puede eliminar los procesos que está utilizando el sistema.
  • Un usuario root puede finalizar el proceso a nivel del sistema y el proceso de cualquier usuario.

Para finalizar el proceso mariadb PID, utilice el comando kill como se muestra.

kill -9 3383

El comando anterior finalizará el proceso que tenga pid=3383, donde PID es un valor numérico del proceso.

Otra forma de realizar la misma función se puede reescribir como.

kill -SIGTERM 3383

De manera similar, 'kill -9 PID' es similar a 'kill -SIGKILL PID' y viceversa.

Para confirmar que el proceso ha finalizado, puede volver a utilizar el comando ps.

ps -ef | grep mariadb

Cómo matar múltiples procesos en Linux

Para finalizar múltiples procesos en Linux usando sus ID de proceso (PID), puede usar el comando kill en combinación con los números PID relevantes.

Primero, identifique los PID de los procesos que desea finalizar usando el comando ps o pgrep.

ps aux | grep apache2
OR
pgrep apache2

Una vez que tenga los PID, use el comando kill para finalizarlos.

kill -9 PID1 PID2 PID3

Cómo matar un proceso en Linux usando el nombre del proceso

Para finalizar un proceso usando el nombre del proceso, usaremos el comando pkill, que es una versión del comando kill que le permite mencionar el nombre del proceso o un patrón para localizar un proceso.

Debe conocer el nombre del proceso antes de finalizarlo, e ingresar un nombre de proceso incorrecto puede arruinarlo.

pkill mysqld

¿Qué pasa si un proceso tiene demasiadas instancias y varios procesos secundarios? Tenemos un comando 'killall' que toma el nombre del proceso como argumento en lugar del número del proceso.

Cómo matar un proceso en Linux usando el comando Killall

La principal distinción entre Killall y Kill es que Killall puede finalizar un proceso por su nombre, mientras que el comando Kill se basa en el ID del proceso (pid).

Para eliminar todas las instancias de MySQL junto con los procesos secundarios, utilice el siguiente comando.

killall mysqld
OR
pkill mysqld

Siempre puede verificar el estado del proceso si se está ejecutando o no, utilizando cualquiera de los siguientes comandos.

systemctl status mysql
pgrep mysql
ps -aux | grep mysql

Las herramientas de monitoreo de sistemas gráficos Linux como htop o gnome-system-monitor proporcionan una interfaz fácil de usar para buscar y eliminar procesos.

Conclusión

Eso es todo por ahora de mi parte. Volveré pronto con otro tema interesante e informativo. Hasta entonces, mantente atento y conectado a Tecmint, y cuida tu salud. No olvide compartir sus valiosos comentarios en la sección de comentarios.