Proceso de eliminación en Bash

Dr. Muhammad Abdullah 15 febrero 2024
  1. Proceso simple frente a proceso Bash
  2. Número de identificador de proceso (PID)
  3. Matar un proceso en Bash
Proceso de eliminación en Bash

Este artículo discutirá primero los diferentes conceptos relacionados con los procesos de Linux. Y después de esto, aprenderemos las diferentes formas de matar un proceso.

Antes de saltar al comando matar, debemos fijarnos en algunos conceptos preliminares.

Proceso simple frente a proceso Bash

Un programa activo o en ejecución en el sistema operativo se denomina proceso. Por ejemplo, cuando ejecutamos un editor o un navegador, el sistema operativo crea un proceso para cada uno.

Por otro lado, un ejecutable simple que se ejecuta en el sistema a través de Bash se denomina proceso Bash. Por ejemplo, se crea un nuevo proceso Bash cada vez que ejecutamos cualquier aplicación, como una calculadora a través de un shell Bash.

Número de identificador de proceso (PID)

Un número o identificador único asignado a cada proceso en ejecución se denomina PID (Identificador de proceso). El comando ps muestra todos los procesos en ejecución y sus PID.

  1. El comando ps muestra todo el PID del proceso en ejecución. Por ejemplo:

    salida de comando ps

  2. El comando pidof también muestra el PID del proceso en ejecución. Podemos encontrar el PID del proceso en ejecución usando el nombre del proceso.

    salida del comando pidof

    La figura anterior muestra que se ejecuta un comando “dormir” en segundo plano, y el comando pidof se usa para encontrar el PID de ese proceso.

  3. El comando pgrep también muestra el PID del proceso en ejecución. Podemos grep el PID por nombre de proceso usando el comando pgrep.

    salida del comando pgrep

    La figura anterior muestra que se ejecuta un comando “dormir” en segundo plano, y el comando pgrep se usa para encontrar el PID de ese proceso.

Matar un proceso en Bash

Hay muchas opciones para eliminar un proceso en ejecución en Bash. Las siguientes son algunas de las opciones disponibles para usar:

Utilice la señal Ctrl+C

Podemos interrumpir o matar un proceso en ejecución y enviar SIGINT usando las teclas Ctrl+C. El Ctrl+C envía la señal de interrupción y el programa en ejecución se elimina, o podemos decir que el programa en ejecución se interrumpe.

proceso bash kill usando ctrl+c

La figura anterior muestra un comando sleep 100 que se interrumpe usando Ctrl+C. Cuando matamos o interrumpimos un programa en ejecución usando Ctrl+C, el código de salida es 130, que podemos verificar usando echo $? dominio.

Usa el comando matar

Podemos matar un proceso en ejecución usando el comando matar. Para eliminar un proceso en ejecución, necesitamos el PID del proceso.

A continuación se muestra la sintaxis del comando matar:

kill <pid>

El comando matar usa el PID de cualquier proceso para matarlo. Podemos encontrar el PID de cualquier proceso usando los comandos ps, pidof o pgrep.

proceso bash kill usando kill

La figura anterior muestra un proceso con PID 14857 que se elimina con el comando kill.

También podemos matar cualquier proceso usando un nombre de proceso en lugar de su PID. Los comandos pkill o killall pueden matar cualquier proceso con un nombre.

La siguiente es la sintaxis de los comandos pkill y killall:

pkill <name>
killall<name>

Todos los comandos anteriores de matar envían SIGKILL al proceso en ejecución. Si alguno de los comandos bloquea el proceso en ejecución, debemos especificar el número de señal o la señal.

bash kill proceso usando kill con señal no.

La figura anterior muestra un proceso que se elimina con el comando kill -9. Podemos enviar un número de señal de muerte o señal de muerte usando los comandos kill -SIGKILL <PID> o kill -9 <PID, donde 9 es el número SIGKILL.

También podemos usar SIGKILL o 9 con los comandos pkill o killall.

proceso bash kill usando pkill con señal no.

La figura anterior muestra un proceso de suspensión que se elimina con el comando pkill -9.