Cómo gestionar procesos en Linux: ps, top, htop y kill
¿Qué es un proceso en Linux?
En Linux, un proceso es cualquier programa en ejecución. Cada vez que abres una terminal, ejecutas un comando o inicias una aplicación, el sistema operativo crea un proceso con un identificador único llamado PID (Process ID).
Gestionar procesos es una habilidad fundamental para cualquier administrador de sistemas. En este tutorial veremos las herramientas más importantes: ps, top, htop y kill.
El comando ps: listar procesos
El comando ps (process status) muestra una instantánea de los procesos en ejecución en ese momento.
Uso básico de ps
# Ver procesos del usuario actual
ps
# Ver todos los procesos del sistema
ps aux
# Ver procesos en formato árbol
ps auxf
El comando ps aux es el más utilizado. Sus columnas significan:
- USER: usuario propietario del proceso
- PID: identificador del proceso
- %CPU: porcentaje de CPU utilizado
- %MEM: porcentaje de memoria RAM utilizado
- COMMAND: comando que lanzó el proceso
Buscar un proceso específico con ps y grep
# Buscar el proceso de nginx
ps aux | grep nginx
# Buscar procesos de un usuario concreto
ps aux | grep victor
El comando top: monitorización en tiempo real
top es el monitor de procesos clásico de Linux. A diferencia de ps, se actualiza continuamente y permite ver el estado del sistema en tiempo real.
# Lanzar top
top
# Lanzar top mostrando solo procesos de un usuario
top -u victor
# Actualizar cada 2 segundos (por defecto son 3)
top -d 2
Atajos de teclado dentro de top
- P: ordenar por uso de CPU
- M: ordenar por uso de memoria
- k: matar un proceso (te pedirá el PID)
- q: salir de top
- h: mostrar ayuda
El comando htop: la versión mejorada de top
htop es una versión más visual e interactiva de top. Muestra barras de progreso para CPU y memoria, permite desplazarse con las flechas del teclado y matar procesos de forma más intuitiva.
Instalar htop
# En Debian/Ubuntu
sudo apt install htop
# En CentOS/RHEL/Fedora
sudo dnf install htop
# En Arch Linux
sudo pacman -S htop
Lanzar htop
htop
Una vez dentro, puedes usar F6 para ordenar por columna, F9 para enviar señales a procesos y F10 para salir.
El comando kill: terminar procesos
Para detener un proceso en Linux usamos el comando kill, que envía una señal al proceso indicado.
Señales más comunes
- SIGTERM (15): pide al proceso que se cierre de forma limpia (señal por defecto)
- SIGKILL (9): fuerza el cierre inmediato, sin posibilidad de ignorarlo
- SIGHUP (1): recarga la configuración del proceso (útil para daemons)
# Terminar proceso por PID (señal SIGTERM por defecto)
kill 1234
# Forzar cierre de un proceso
kill -9 1234
# Terminar proceso por nombre
killall nginx
# Terminar proceso por nombre (más seguro)
pkill nginx
Encontrar el PID antes de matar el proceso
# Obtener el PID de un proceso por nombre
pidof nginx
# Alternativa
pgrep nginx
Procesos en segundo plano: & , bg y fg
En Linux puedes ejecutar procesos en segundo plano para seguir usando la terminal mientras se ejecutan.
# Ejecutar un comando en segundo plano
ping google.com &
# Ver jobs en segundo plano
jobs
# Traer un job al primer plano
fg %1
# Enviar un proceso al segundo plano (si ya está corriendo)
# Primero pulsa Ctrl+Z para pausarlo, luego:
bg %1
Resumen: tabla de comandos
| Comando | Función |
|---|---|
ps aux | Listar todos los procesos |
top | Monitorizar procesos en tiempo real |
htop | Monitorizar con interfaz visual |
kill <PID> | Terminar proceso por PID |
kill -9 <PID> | Forzar cierre de proceso |
killall <nombre> | Terminar procesos por nombre |
pgrep <nombre> | Obtener PID por nombre |
Conclusión
Dominar la gestión de procesos en Linux es esencial para cualquier administrador de sistemas o profesional DevOps. Con ps, top, htop y kill tienes todo lo necesario para controlar qué está corriendo en tu sistema y actuar cuando algo no va bien.
¿Tienes alguna duda o quieres profundizar en algún comando? Déjalo en los comentarios.
