Módulo 6 – Procesos y Control de Recursos

R.0a67a902b2ad415a3bb9f138160f5b6b (1000×463)

Supervisar, gestionar y controlar procesos activos en un sistema Linux para mantener la estabilidad y disponibilidad operativa.


Introducción 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.


🧩 Conceptos operativos clave

1. Listar procesos
  • 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.

2. Monitorear procesos en tiempo real
  • 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.

    • Permite matar, renicear o inspeccionar procesos con teclas de función o el cursor.
3. Detener procesos manualmente
  • 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).

4. Procesos en segundo plano y manipulación
  • 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.
5. Cambiar prioridad de procesos
  • nice -n valor comando: ejecuta un comando con una prioridad dada (de -20 a 19; -20 es más prioritario).

    • Ejemplo: nice -n 10 gzip archivo.log
  • renice valor -p PID: cambia la prioridad de un proceso ya en ejecución.

    • Ejemplo: renice -5 -p 2034

🧪 Prácticas guiadas

Ejercicio 1 – Inspeccionar procesos
ps aux | grep ssh
top

Observa la columna %CPU y %MEM. Identifica el proceso con mayor uso.


Ejercicio 2 – Lanzar procesos controlados
sleep 120 &
jobs
fg %1
Ctrl+Z
bg %1

Practica cambiar de foreground a background y viceversa.


Ejercicio 3 – Finalizar procesos
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.


Ejercicio 4 – Cambiar prioridad
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).


Recomendaciones visuales

  • 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).


⚠️ Errores comunes

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

✅ Criterios de evaluación

  • 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.


❓ Preguntas de repaso

  • ¿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?