Proceso de eliminación en Bash
- Proceso simple frente a proceso Bash
- Número de identificador de proceso (PID)
- Matar un proceso 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.
-
El comando
ps
muestra todo el PID del proceso en ejecución. Por ejemplo: -
El comando
pidof
también muestra el PID del proceso en ejecución. Podemos encontrar elPID
del proceso en ejecución usando el nombre del proceso.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. -
El comando
pgrep
también muestra elPID
del proceso en ejecución. Podemos grep el PID por nombre de proceso usando el comandopgrep
.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.
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
.
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.
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
.
La figura anterior muestra un proceso de suspensión que se elimina con el comando pkill -9
.