Supervisar, gestionar y controlar procesos activos en un sistema Linux para mantener la estabilidad y disponibilidad operativa.
En Linux, todo lo que se ejecuta es un proceso: desde el sistema base hasta scripts, servicios y aplicaciones de usuario. Poder ver, detener, priorizar o reubicar procesos es indispensable para mantener el sistema funcionando correctamente, diagnosticar problemas de carga o liberar recursos en situaciones críticas.
Este módulo te enseña a observar en tiempo real qué se está ejecutando, cómo controlar procesos manualmente, y cómo modificar su comportamiento sin necesidad de reiniciar el sistema.
ps aux
: muestra todos los procesos del sistema.
ps -ef
: formato extendido común en scripts y administración clásica.
Filtros comunes: ps aux | grep nombre_proceso
para localizar uno específico.
top
: herramienta interactiva, muestra uso de CPU, memoria y carga.
Teclas útiles dentro de top
:
P
: ordenar por uso de CPU.
M
: ordenar por uso de memoria.
k
: matar un proceso (te pedirá PID).
q
: salir.
htop
(si está instalado): versión más amigable y visual de top
.
kill PID
: envía señal (por defecto SIGTERM) al proceso.
kill -9 PID
: fuerza el cierre con SIGKILL (terminación inmediata).
kill -HUP PID
: reinicia un proceso que interpreta HUP como recarga (útil en daemons como sshd
o nginx
).
Ejecutar en segundo plano:
comando &
→ lanza un proceso y devuelve el control al shell.Consultar trabajos:
jobs
→ muestra procesos lanzados desde la terminal actual.Traer proceso al frente:
fg %1
→ foreground del trabajo 1.Enviar proceso en background:
Ctrl+Z
pausa y bg %1
lo reanuda en segundo plano.nice -n valor comando
: ejecuta un comando con una prioridad dada (de -20 a 19; -20 es más prioritario).
nice -n 10 gzip archivo.log
renice valor -p PID
: cambia la prioridad de un proceso ya en ejecución.
renice -5 -p 2034
ps aux | grep ssh
top
Observa la columna %CPU
y %MEM
. Identifica el proceso con mayor uso.
sleep 120 &
jobs
fg %1
Ctrl+Z
bg %1
Practica cambiar de foreground a background y viceversa.
top
## Anota el PID de un proceso seguro (como 'sleep')
kill PID
Si el proceso no muere, repite con kill -9 PID
. Observa la diferencia.
nice -n 10 yes > /dev/null &
ps -eo pid,ni,cmd | grep yes
renice -5 -p PID
Verifica el nuevo valor en la columna NI
(nice level).
Captura de top
ordenado por CPU.
Comparación entre ps aux
y htop
.
Diagrama de jerarquía de procesos (pstree
opcional).
Tabla visual de señales comunes (kill -l
).
Error | Causa | Solución |
---|---|---|
kill no detiene el proceso |
El proceso ignora SIGTERM | Usa kill -9 PID |
Permission denied al intentar kill |
No eres dueño del proceso | Ejecutar como root con sudo |
jobs no muestra nada |
El proceso no fue lanzado desde esa terminal | Usar ps aux o htop en su lugar |
Alta carga de CPU sin identificar causa | Procesos zombies o loops | Usa top , ps y strace si es necesario |
Ejecuta y controla procesos en foreground y background.
Identifica y termina procesos mediante PID.
Usa top
o htop
para diagnosticar consumo de recursos.
Aplica nice
y renice
para priorizar procesos según contexto.
Comprende el uso de señales (kill -9
, -HUP
, etc.) y sus efectos.
¿Qué comando usarías para encontrar el PID de un proceso específico?
¿Cuál es la diferencia entre kill
y kill -9
?
¿Cómo cambiarías la prioridad de un proceso ya en ejecución?
¿Qué significa que un proceso esté en segundo plano?
¿Qué pasa si haces Ctrl+Z
en un proceso activo?