¿Necesita matar un proceso en ejecución? El comando kill en Linux está diseñado precisamente para eso. Ningún sistema operativo es perfecto. Por lo tanto, es común que su sistema Linux tenga que lidiar con procesos ocasionales que no responden.
Para lidiar con instancias en las que necesitamos finalizar un proceso, usamos el comando kill en Linux.
En este tutorial, entenderemos cómo funciona el comando matar. Más tarde, intentaremos usar el comando kill para nuestros requisitos.
Conceptos básicos del comando matar
Hay varias utilidades que ayudan a un usuario de Linux a terminar procesos que pueden estar funcionando mal. Una de las utilidades más utilizadas para este fin en el comando kill en Linux.
El comando kill en Linux se usa para matar manualmente un proceso usando la línea de comando. Es una utilidad integrada de shell para la mayoría de los shells derivados del shell de Bourne, como bash.
Las opciones para la versión incorporada de bash del comando kill en Linux son ligeramente diferentes del ejecutable independiente que se encuentra en /bin/kill.
Sin embargo, por el bien de este tutorial, usaremos la versión integrada de bash del comando kill. Para verificar todas las ubicaciones que contienen el comando de eliminación en su sistema, escriba el siguiente comando en su terminal.
root@ubuntu:~# type -a kill kill is a shell builtin kill is /bin/kill
Debería obtener una salida similar a la captura de pantalla anterior. Este resultado confirma que la versión integrada de shell del comando kill tiene prioridad sobre su ejecutable independiente.
Por lo tanto, usar el comando kill ejecutará la versión integrada de bash. Puede usar el ejecutable usando la ruta completa para el comando como /bin/kill/. Sin embargo, procederemos con la versión integrada de bash del comando kill.
Comando matar en Linux
La mejor manera de entender cualquier comando es a través de la comprensión de su sintaxis. Así es como se ve la sintaxis del comando kill en Linux.
kill [option] PID
El comando matar se utiliza para enviar una señal a un proceso. Esta señal se decide por la opción utilizada al llamar al comando de eliminación.
Procesar señales de terminación con el comando kill
Si bien hay una amplia variedad de opciones para elegir, aquí hemos enumerado las más utilizadas en la siguiente tabla.
Opción | Número de señal | Acción |
SIGTERM | 15 | La señal SIGTERM se usa para indicarle a un proceso que finalice correctamente. Esta señal de interrupción puede ser interpretada por el proceso o puede ser ignorada. |
SIGKILL | 9 | La señal SIGKILL se utiliza para forzar la terminación de un proceso. Es una señal que el proceso no puede ignorar en ningún caso. |
SUSCRIBIR | 1 | La señal SIGHUP se utiliza para "colgar" un proceso. Esto se puede usar para reiniciar un proceso. |
SIGENTE | 2 | La señal SIGINT se utiliza cuando el usuario quiere interrumpir un proceso. |
Si no especificamos la opción, se usará la opción predeterminada para el comando de eliminación. La opción predeterminada para el comando de eliminación en Linux es SIGTERM. Las opciones se pueden usar en el comando matar de tres maneras diferentes.
Uso del número de señal
kill -9 [PID]
Con el prefijo 'SIG'
kill -SIGKILL [PID]
Sin el prefijo 'SIG'
kill -KILL [PID]
¿Cuál es el ID de proceso (PID) cuando se usa el comando kill en Linux?
Pasando al último parámetro, el PID. El PID se refiere al ID de proceso para un determinado proceso. Cada vez que se inicia un proceso, el kernel le asigna una ID única.
Usamos el PID en el comando de eliminación en Linux para especificar el proceso al que queremos enviar la señal de eliminación.
El PID utilizado en el comando de eliminación puede tener cualquier valor entero. Aquí hay una lista que contiene el valor del PID y su efecto en el comando de eliminación.
Valor de PID | Efecto en el comando de matar |
PID>0 | Esto envía la señal de finalización adecuada al proceso, que es un PID igual al PID mencionado en el comando. |
PID=0 | Esto envía la señal de finalización adecuada a todos los procesos que se ejecutan en el mismo grupo que el que invoca el comando. |
PID=-1 | Esto envía la señal de interrupción adecuada a todos los procesos que se ejecutan bajo el mismo usuario que invoca el comando. En el caso de que el usuario raíz invoque dicho comando, la señal de eliminación se envía a todos los procesos, excepto al proceso de eliminación y al proceso de inicio. |
PID<-1 | Esto envía la señal de interrupción adecuada a todos los procesos que se ejecutan en un grupo, de modo que la ID del grupo sea igual al valor absoluto del PID utilizado en el comando de eliminación. |
Cuando queremos saber el PID de un proceso, usamos el siguiente comando.
pidof <processname>
Este comando devolverá todos los PID para el proceso especificado. Ahora podemos usar este PID para enviar la señal de interrupción deseada al proceso.
Usando el comando matar
Ahora hemos desarrollado una comprensión del comando kill en Linux y sus parámetros. Ahora es el momento de usar este conocimiento para realizar dos operaciones comunes que involucran el uso del comando de matar.
Matar un proceso
El uso más común del comando kill en Linux, como sugiere su nombre, es matar un proceso. Aquí, elegiremos matar los procesos de comando superior en nuestro sistema usando el comando matar.
Para esta demostración, simplemente ejecuté la parte superior de varios shells para crear estos procesos.
Para hacerlo, primero usaremos el siguiente comando para encontrar los PID asociados con el proceso del comando superior.
pidof top
Ahora, usamos la señal de eliminación SIGKILL para eliminar todos los procesos asociados con el comando superior.
Recargar un proceso
Otra función posible con el comando kill en Linux es reiniciar un proceso. Esto es útil en caso de que un servicio se esté ejecutando pero necesite volver a leer su archivo de configuración para habilitar los cambios recientes.
Por ejemplo, si desea volver a cargar el proceso del servidor Lighttpd en su sistema, puede ejecutar el siguiente comando.
sudo kill -SIGHUP <process ID of Lighttpd>
Conclusión
Si un proceso deja de responder, no hay forma de reiniciarlo. Las únicas opciones disponibles disponibles son reiniciar nuestro sistema o finalizar el proceso en particular. Esperamos que, a través de este tutorial, haya podido desarrollar una buena comprensión del comando matar.
Prueba el comando kill en Linux por ti mismo. Si tiene algún comentario, sugerencia o comentario, no dude en comunicarse con nosotros a través de la sección de comentarios a continuación.