Todos nosotros hemos experimentado, en un momento u otro, un programa congelado y no respondiendo. En tales casos, terminar el programa y reiniciarlo es una solución simple y eficiente. En este artículo, le mostraremos cómo puede finalizar procesos que no responden utilizando el comando Kill.
El comando matar
Como se mencionó anteriormente, cuando un programa deja de responder, y no puede reiniciarlo, necesita una nueva solución. En ese momento, los usuarios de Windows abrirían su administrador de tareas para deshacerse del proceso congelado. No hay un administrador de tareas incorporado en Linux, pero hay un comando que podemos usar para lograr el mismo efecto que la funcionalidad de tarea final en Windows. Este comando se conoce como el comando Kill, y podemos usarlo de múltiples maneras para ayudarnos y al sistema para deshacernos de las instancias corruptas.
Matar sintaxis
La sintaxis para el comando matar es sencilla.
$ Kill - [señal] PID
Aquí, dos cosas necesitan explicación: a saber, señal y pid. Veamos tanto uno por uno y aprender cómo contribuyen a la funcionalidad de este comando.
El parámetro de señal
Primero está la señal. Las señales son dígitos simples que representan un nombre. El comando matar puede realizar diferentes tareas dependiendo de la señal que proporcione. Los usuarios pueden usar más de 60 valores diferentes para señales, todas las cuales realizan tareas específicas y específicas. Para ver todas estas opciones, puede usar el siguiente comando:
$ Kill -l
Cuando usa este comando en el terminal de comando de Ubuntu, obtiene esto en su pantalla:
Como puede ver, hay un total de 64 opciones que puede seleccionar.
Aunque hay más de 60 señales diferentes, dos de las más comunes se describen a continuación.
Las señales se pueden especificar de 3 maneras diferentes que se describen a continuación.
1. Podemos especificar la señal con el dígito respectivo:
$ kill -9 pid
2. Podemos especificar la señal con su nombre:
$ kill -sigkill pid
3. Podemos especificar la señal sin SIG en el nombre.
$ kill -kill pid
Todos estos comandos realizan la misma tarea.
El parámetro PID
PID es el número de identificación del proceso. En los sistemas similares a Linux y Unix, cada proceso llevado a cabo por el sistema recibe un número de identificación de proceso (denominado PID en adelante). Para matar un proceso, uno debe conocer su pid. Para encontrar el PID para un proceso dado, podemos usar los siguientes comandos.
$ Pidof [Nombre del proceso]
$ PGREP [Nombre del proceso]
Cuando usa estos dos comandos en el terminal de comandos de Ubuntu, obtiene el siguiente resultado.
Usando el comando matar
Ahora que has entendido la sintaxis, podemos ejecutar el comando matar. En aras del ejemplo, haremos uso de Kill en Thunderbird Mail: un programa preinstalado en Ubuntu. Primero identificaremos su PID y luego terminaremos el proceso utilizando la señal Sigterm.
Primero, abra el terminal de comando para Ubuntu. Una vez hecho, ejecute el siguiente comando:
$ pgrep Thunderbird
Debe obtener una salida similar a la que obtuvimos en la imagen a continuación:
Como ahora sabe, el PID de Thunderbird Mail ejecuta el siguiente comando para finalizar el proceso.
$ Kill -Sigterter 7075
O
$ Kill -15 7075
Cuando presione ENTER, notará que el proceso y su ventana ya no existen. También puede finalizar múltiples procesos juntos ingresando simultáneamente los PID de los procesos.
$ Kill -[señal] PID1 PID2 ... PIDN
Además, los usuarios pueden finalizar un proceso utilizando los comandos Kill y Pidof/PGREP en la misma línea. La sintaxis para tal arreglo es:
$ Kill -[señal] $ PGREP [Nombre del proceso]
Razones por las cuales matar puede no funcionar
Como se indicó anteriormente, la señal predeterminada enviada con el comando kill es Sigterm. Sigter esencialmente notifica el proceso que debe limpiarse y ser terminado. Esta es la forma "agradable" de terminar o matar un proceso. Sin embargo, con algunos procesos, es posible que la buena manera no lo corte.
Si nota que el proceso que había ordenado que termine todavía se ejecuta después de usar la señal Sigterm, no se preocupe, ya que esta es una complicación común que ocurre mientras se usa Kill. Como dijimos, esto ocasionalmente puede suceder y con ciertos procesos.
Para deshacerse de este problema, puede usar la señal Sigkill para terminar el proceso por completo. La señal Sigkill permite al sistema tomar las cosas en sus propias manos. Entonces, si cumple con una situación tan pegajosa, siempre puede salir de ella usando la señal Sigkill o -9.
Es importante que use Sigkill con moderación y cuando se presente con una situación que Sigterm no puede resolver. SigterT sigue siendo el valor predeterminado y el más seguro; Por lo tanto, la mejor manera de terminar un proceso.
El comando killall
El comando Kill es nativo de Linux y otros sistemas operativos basados en UNIX, pero el comando killall es para usuarios solo de Linux. Este comando permite al usuario finalizar un proceso mediante el nombre del proceso. No hay necesidad de encontrar el PID del proceso. La sintaxis para el comando killall es:
$ Killall -[señal] [Nombre del proceso]
Este comando puede servir como una buena alternativa si, por alguna razón, Kill no funciona para usted incluso después de las soluciones prescritas.
Conclusión
Este artículo aprendió sobre el comando matar, su propósito, sintaxis, parámetros y uso. Además, vimos lo que puede hacer que el comando de matar no funcione correctamente y solucione estos problemas. Con suerte, esta ha sido una lectura informativa e interesante para usted, y resolvimos cualquier problema que tenía con este comando.