En cualquier sistema Linux, gestionar procesos es una tarea fundamental. Ya sea porque una aplicación se ha quedado colgada, porque un servicio consume demasiados recursos o porque necesitas detener un proceso específico para mantenimiento, conocer cómo identificarlo y matarlo correctamente es imprescindible.
En este post encontrarás una guía completa, clara y práctica sobre cómo listar, localizar y finalizar procesos en Linux utilizando las herramientas más habituales: ps, top, htop, kill, pkill, killall y comandos avanzados.
1. ¿Qué es un proceso en Linux?
Un proceso es cualquier programa o servicio que se está ejecutando en el sistema. Cada proceso tiene:
PID (Process ID): un identificador único.
PPID: el PID del proceso padre.
Estado: ejecutándose, detenido, zombie, etc.
Usuario: quién lo ejecuta.
Recursos: CPU, RAM, disco, etc.
Para matar un proceso, primero necesitas identificar su PID o su nombre.
2. Cómo listar procesos en Linux
2.1. Usar ps
El comando más clásico:
Código
ps aux
Muestra todos los procesos del sistema con información detallada.
Para buscar un proceso concreto:
Código
ps aux | grep nombre
Ejemplo:
Código
ps aux | grep apache
2.2. Usar top
top muestra procesos en tiempo real:
Código
top
Puedes ordenar por CPU, memoria, etc. Para matar un proceso desde top:
Pulsa k
Introduce el PID
Introduce la señal (normalmente 15)
2.3. Usar htop (más visual)
Si está instalado:
Código
htop
Permite:
Buscar procesos
Ordenar por recursos
Matar procesos con F9
Es la opción más cómoda para administradores.
3. Cómo matar procesos en Linux
Una vez identificado el proceso, puedes matarlo con distintos comandos.
3.1. kill (por PID)
El comando básico:
Código
kill PID
Ejemplo:
Código
kill 1234
Esto envía la señal SIGTERM (15), que pide al proceso que termine de forma ordenada.
3.2. kill -9 (forzar terminación)
Si el proceso no responde:
Código
kill -9 PID
Esto envía SIGKILL (9), que lo mata inmediatamente sin permitir limpieza.
Úsalo solo cuando sea necesario.
3.3. killall (por nombre)
Para matar todos los procesos con un nombre concreto:
Código
killall nombre
Ejemplo:
Código
killall apache2
Muy útil para servicios con múltiples procesos.
3.4. pkill (por patrón)
Permite matar procesos usando expresiones:
Código
pkill nombre
Ejemplo:
Código
pkill -f "python script.py"
Opciones útiles:
pkill -u usuario → mata procesos de un usuario
pkill -9 nombre → mata forzadamente
4. Señales más comunes al matar procesos
Linux utiliza señales para comunicarse con los procesos. Las más usadas:
| Señal | Número | Descripción |
|---|---|---|
| SIGTERM | 15 | Termina el proceso de forma ordenada |
| SIGKILL | 9 | Mata el proceso inmediatamente |
| SIGSTOP | 19 | Pausa el proceso |
| SIGCONT | 18 | Reanuda un proceso detenido |
| SIGHUP | 1 | Reinicia el proceso (útil en servicios) |
Ejemplo de envío de señal:
Código
kill -SIGSTOP 1234
5. Cómo matar procesos que consumen demasiados recursos
5.1. Encontrar procesos que consumen CPU
Código
ps aux --sort=-%cpu | head
5.2. Encontrar procesos que consumen RAM
Código
ps aux --sort=-%mem | head
Una vez identificado el PID, puedes matarlo con kill o kill -9.
6. Cómo matar procesos en puertos específicos
Si un proceso está bloqueando un puerto:
Identifica el PID:
Código
lsof -i :PUERTO
Ejemplo:
Código
lsof -i :8080
Mata el proceso:
Código
kill -9 PID
7. Cómo matar procesos zombie
Los procesos zombie no pueden ser matados con kill, porque ya están muertos. La solución es reiniciar el proceso padre o, en casos extremos, reiniciar el sistema.
Para ver zombies:
Código
ps aux | grep Z
8. Buenas prácticas al matar procesos
Intenta siempre primero SIGTERM (15)
Usa SIGKILL (9) solo si no hay alternativa
Verifica qué servicio o usuario ejecuta el proceso
Evita matar procesos del sistema sin saber qué hacen
Documenta acciones en servidores de producción
Conclusión
Matar procesos en Linux es una tarea esencial para cualquier administrador o usuario avanzado. Conocer las herramientas adecuadas —ps, top, htop, kill, pkill, killall— te permite gestionar el sistema de forma eficiente, resolver bloqueos y mantener el rendimiento estable.
Dominar estas técnicas te da control total sobre el sistema y te permite actuar rápidamente ante cualquier problema.