Este comando de Linux puede salvarte la vida si tu PC se queda bloqueado

Aunque Linux es conocido por ser un sistema mucho más estable y fiable que Windows, como cualquier sistema también puede llegar a fallar. Hay programas, y procesos, que se pueden quedar bloqueados y hacer que, o bien el uso de la memoria o de la CPU del ordenador se dispare mientras intenta recuperar el control del proceso, o directamente que el sistema se bloquee por completo y no podamos interactuar con él. Linux ofrece a los usuarios más experimentados varias formas de solucionar esto. Y hoy vamos a explicar una de las más conocidas: el comando kill.

Kill, como podemos imaginar, es un comando que, al ejecutarlo, estamos mandando «matar» a un proceso. Esto forzará al sistema a deshacerse de él, aunque esté bloqueado, y nos permitirá recuperar el control del sistema sin necesidad de tener que realizar. Se trata de un comando que hay que ejecutar desde un terminal, por lo que lo primero que tenemos que hacer es abrir una ventana de Terminal, o TTY, desde donde podremos ejecutar comandos.

Abrir un TTY y ver los procesos abiertos

Cuando la interfaz gráfica (GUI) se congela y deja de responder, el primer paso es acceder a una consola virtual de texto (TTY). O, en su defecto, podemos conectarnos desde otro ordenador (por ejemplo, un PC con Windows) mediante SSH para tomar el control del sistema y poder ejecutar estos comandos.

Para cambiar a un TTY de Linux, podemos hacerlo con el atajo de teclado «Ctrl + Alt + Fx» (pudiendo cambiar la «Fx» por F3, F4, F5 o F6). Linux nos pedirá nuestro usuario y nuestra contraseña. Tras escribirlos, tendremos ya acceso a una nueva consola del sistema. Para volver al TTY con interfaz gráfica, tenemos que pulsar el atajo de teclado Ctrl + Alt + F7 (o F1 / F2, en los sistemas más nuevos con Wayland).

Una vez que tengamos control dentro de un Terminal, de la forma que sea, lo siguiente será identificar el proceso que está funcionando mal. Para ello, debemos usar un administrador de tareas (nosotros recomendamos htop, ya que es uno de los mejores y más fáciles de usar) ejecutando «htop» en el terminal.

Captura de pantalla de la terminal de Linux ejecutando el monitor de procesos htop, mostrando columnas como PID, USER, CPU% y COMMAND para identificar programas que consumen recursos.
Usando htop para identificar el PID (Process ID) de un proceso. En este ejemplo, el proceso con PID 1234 sería el objetivo a terminar. Fuente: Captura propia de Softzone.es

Podemos ordenar todos los procesos por uso de CPU o uso de memoria para encontrar cuál está causando el estrangulamiento del sistema. Una vez que lo tengamos a la vista, debemos fijarnos en el PID, ya que es el código que debemos mandar, junto al comando «Kill», para matar el proceso.

Truco: Si pulsamos F9 dentro de htop, podemos mandar una orden «kill» al proceso que tengamos seleccionado. Pero nosotros os vamos a explicar cómo funciona el comando como tal.

¿Y si el ordenador no tiene htop? No pasa nada. Linux nos ofrece otras muchas formas de conocer el PID de un proceso. Algunas de las más sencillas de usar son:

  • Comando ps: Es la opción más robusta. Podemos usar «ps aux | grep firefox» para encontrar el PID de Firefox. El PID es el número que aparece en la segunda columna.
  • Comando pidof: Es la más directa. Simplemente tenemos que lanzar «pidof firefox» y nos devolverá directamente el número del PID sin más información.
  • Comando top: Similar a htop, es un monitor de procesos en tiempo real que viene por defecto. Lo ejecutamos y buscamos el proceso en la lista.

Cómo funciona el comando KILL en Linux

Este comando puede funcionar de varias formas. Por ejemplo, el comando killall seguido del nombre del proceso nos permitirá matar de un golpe todos los procesos que tengan el mismo nombre. Por ejemplo:

killall firefox

Si añadimos el parámetro -9, podemos forzar el cierre, muy útil cuando está bloqueado del todo el proceso:

killall -9 firefox

¡Atención al usar killall! Este comando es potente pero indiscriminado. Si ejecutamos «killall firefox», este cerrará todas las ventanas y procesos de Firefox, sin distinción. Antes de usarlo, debemos asegurarnos de que no hay trabajos importantes sin guardar en ninguno de ellos.

Si queremos ser más precisos, el comando kill nos permite matar procesos concretos mediante su ID. Por ejemplo, podemos forzar el cierre de un proceso cuyo ID es 1234 con:

kill 1234

O forzar su cierre con:

kill -9 1234

Aviso: Es vital entender la diferencia entre las señales de terminación. Por defecto, kill [PID] envía la señal SIGTERM (15), que es una solicitud «educada» para que el proceso se cierre, permitiéndole guardar datos y limpiar recursos. En cambio, kill -9 [PID] envía SIGKILL (9), una «terminación forzosa» e inmediata que no puede ser ignorada. Por lo tanto, solo debemos usar SIGKILL como último recurso, ya que puede causar una corrupción de datos y dejar el sistema en un estado inestable, e incluso bloqueado.

Además de los dos comandos agresivos que acabamos de ver, también podemos hacer uso de otros mucho más ligeros. Por ejemplo, podemos ejecutar «kill -1 [PID]» para mandar una orden SIGHUP (1) al comando de manera que, en vez de reiniciarse a la fuerza, se le indique a un servicio que recargue su fichero de configuración sin necesidad de reiniciarse. O también usar las órdenes SIGSTOP (19) o SIGCONT (18), que permiten pausar (congelar) un proceso sin terminarlo «kill -19 [PID]» y reanudarlo más tarde «kill -18 [PID]«. Muy útil para liberar recursos temporalmente.

Aunque estas herramientas resuelven bloqueos puntuales, como medida de mantenimiento preventivo, es recomendable programar reinicios periódicos para liberar recursos de memoria no devueltos por las aplicaciones y aplicar actualizaciones críticas del kernel que requieran un nuevo arranque.

Preguntas Frecuentes sobre el comando kill

¿Qué es el comando kill en Linux?
Es una herramienta de línea de comandos que se utiliza para enviar señales a los procesos del sistema, siendo la más común la solicitud de terminación para cerrar programas que no responden.

¿Cuál es la diferencia fundamental entre ‘kill’ y ‘kill -9’?
‘kill’ por defecto envía la señal SIGTERM (15), una petición educada para que el proceso se cierre y guarde sus datos. ‘kill -9’ envía la señal SIGKILL (9), una orden inmediata e ignorable que fuerza el cierre y puede causar pérdida de datos.

¿Cómo puedo encontrar el ID de un proceso (PID) para poder cerrarlo?
Puedes utilizar un monitor de sistema desde el terminal como ‘htop’ o ‘top’. Estos programas listan todos los procesos en ejecución junto a su PID, uso de CPU y memoria.

¿Qué puedo hacer si toda la interfaz gráfica está bloqueada y no puedo abrir un terminal?
Puedes intentar cambiar a una consola virtual de solo texto (TTY) usando la combinación de teclas Ctrl + Alt + F1 hasta F6. Desde allí, puedes iniciar sesión y ejecutar los comandos necesarios.

¿Es seguro usar ‘kill -9’ en cualquier proceso?
No. Usar ‘kill -9’ debe ser el último recurso. Forzar el cierre de procesos críticos del sistema o de programas en medio de una escritura de datos puede dejar el sistema inestable o corromper archivos importantes.

Ir a la fuente
Author: Rubén Velasco

RECENT POSTS

CATEGORIES