Contenido del curso

Cómo identificar y matar procesos en Linux

Resumen

Gestionar procesos en Linux es una habilidad esencial para cualquier persona que trabaje en tecnología, ya sea en bases de datos, infraestructura o desarrollo web. Aquí aprendes a identificar procesos, leer su estado y terminarlos con comandos como ps, top, htop y kill, sin importar si trabajas en backend, DevOps o frontend.

¿Qué es un proceso y cómo lo identifico con ps?

Un proceso es cualquier programa que el sistema operativo está ejecutando en un momento dado. Para listarlos, el comando base es ps, que en su propia documentación se describe como report a snapshot of the current processes. Eso significa que te entrega una fotografía del instante, no un monitor en tiempo real.

Si escribes solo ps, el formato resulta limitado. La combinación más útil, y la que vale la pena memorizar, es ps aux. Esa tabla te muestra varios datos clave por proceso:

  • Usuario que lo ejecuta.
  • PID o process ID, el identificador único que asigna el sistema operativo.
  • Porcentaje de CPU y memoria que consume.
  • Terminal asociada, hora de inicio y comando que lo lanzó.

Para filtrar por nombre, encadena un grep. Por ejemplo, ps aux | grep -i sleep te devuelve todos los procesos sleep activos sin distinguir mayúsculas. Es la forma rápida de encontrar un PID cuando ya sabes qué buscas [3:00].

¿Qué es un PID en Linux? Es el process ID, un número único que el sistema operativo asigna a cada proceso en ejecución. Lo necesitas para terminarlo, monitorearlo o cambiar su prioridad.

¿Cómo monitoreo procesos en tiempo real con top y htop?

Cuando necesitas algo más vivo que una fotografía, entra top. Este comando refresca la información cada tres segundos aproximadamente y te indica cuánto tiempo lleva activo el sistema, cuántas tareas corren, cuántas duermen y cuántas están detenidas o en estado zombie [3:50].

¿Qué estados puede tener un proceso?

Los tres estados que vas a encontrar la mayor parte del tiempo son running, sleeping y stopped. El estado zombie aparece en casos más raros: ocurre cuando un proceso padre pierde la referencia a un proceso hijo que se rompió. Piensa en un programa como Word lanzando un subproceso que falla sin avisar.

Dentro de top hay un parámetro llamado NI, que se refiere al Nice del proceso. El Nice va aproximadamente de 20 a -20. Aunque suene contraintuitivo, los valores negativos significan mayor prioridad y los positivos, menor. El sistema operativo asigna más CPU a los procesos con Nice negativo porque los considera más críticos. Casi nunca lo configuras tú a mano, pero es útil saber qué significa cuando lo veas [5:30].

¿Por qué htop es más cómodo que top?

htop es una versión gráfica y más amigable. Lo instalas con sudo apt install htop en Linux o con Homebrew en macOS. Una vez dentro, tienes ventajas claras frente a top:

  • Visualización gráfica de memoria y de cada núcleo de CPU.
  • Búsqueda por nombre con la tecla F3.
  • Vista en árbol con F5, donde ves qué proceso es padre y cuál es hijo.
  • Terminación directa con F9.

En la vista de árbol puedes rastrear hasta el proceso init, que es el proceso padre de cualquier sistema Linux, y bajar hasta tu sesión de bash y el propio htop [8:30].

¿Cómo termino un proceso con kill y la señal 9?

Cuando ya tienes el PID, puedes terminar el proceso sin tocar la ventana donde corre. El comando es kill, y necesita dos cosas: la señal de terminación y el PID.

La señal más común es la signal kill, identificada con el número 9. Esa es la que debes memorizar. La sintaxis queda así:

bash kill -9 1332

Donde 1332 es el PID que obtuviste con ps aux | grep sleep. Al ejecutarlo, el proceso se termina de inmediato y, si revisas con jobs, ya no aparece nada [10:50].

¿Qué hace kill -9 exactamente? Envía la señal de terminación forzada al proceso indicado por su PID. El sistema operativo lo cierra de golpe, sin esperar a que libere recursos por su cuenta.

Este flujo (identificar con ps aux, monitorear con top o htop, y cerrar con kill -9) es el mismo que vas a usar cuando un servidor se quede colgado, cuando una base de datos no responda o cuando un script entre en bucle. Cuéntame en los comentarios qué proceso fue el primero que terminaste tú con kill -9.