Procesos y gestión de servicios en Linux¶
Este módulo explica cómo Linux ejecuta, gestiona y controla procesos y servicios. Como sysadmin, dominar estos conceptos es esencial para diagnosticar problemas, optimizar recursos y mantener servicios críticos en funcionamiento.
Aprenderás a identificar procesos, gestionar prioridades, enviar señales y controlar demonios y servicios del sistema.
Introducción / Concepto principal¶
Un proceso es un programa en ejecución. Linux es un sistema multitarea y multiusuario, por lo que múltiples procesos se ejecutan de forma simultánea.
Cada proceso tiene:
- Un identificador único (PID)
- Un proceso padre (PPID)
- Un usuario propietario
- Un estado (ejecutándose, detenido, zombie, etc.)
Todo en Linux se ejecuta como proceso, directa o indirectamente.
Visualización y estados de procesos¶
Comandos básicos¶
ps aux
a→ todos los usuariosu→ formato detalladox→ procesos sin terminal
top
- Vista dinámica de procesos
- Uso de CPU y memoria
- Ordenación por consumo
htop
- Versión mejorada (si está instalada)
- Navegación interactiva y señales
Estados de procesos¶
| Estado | Significado |
|---|---|
| R | Ejecutándose |
| S | Interrumpible (sleep) |
| D | No interrumpible |
| T | Detenido |
| Z | Zombie |
Los procesos zombie indican problemas de gestión por parte del padre.
Señales y control de procesos¶
Linux controla procesos mediante señales.
Señales comunes¶
| Señal | Número | Uso |
|---|---|---|
| SIGTERM | 15 | Finalización ordenada |
| SIGKILL | 9 | Muerte inmediata |
| SIGSTOP | 19 | Pausa |
| SIGCONT | 18 | Reanudar |
Enviar señales¶
kill PID
kill -9 PID
pkill nombre_proceso
killall nombre_proceso
⚠️ Usa
-9solo como último recurso: no permite limpieza ni cierre ordenado.
Prioridades y recursos¶
Cada proceso tiene una prioridad de ejecución.
Nice y renice¶
- Rango:
-20(más prioridad) a19(menos prioridad)
nice -n 10 comando
renice -5 -p PID
- Solo root puede asignar prioridades negativas
Ajustar prioridades ayuda a proteger servicios críticos en sistemas cargados.
Arquitectura de procesos¶
Jerarquía de procesos¶
- PID 1 →
systemd - Todos los procesos tienen un padre
- Si el padre muere:
- El proceso es adoptado por PID 1
pstree -p
Demonios¶
- Procesos que corren en segundo plano
- No dependen de terminal
- Ejemplos:
sshd,cron,nginx
Gestión de servicios con systemd¶
Conceptos clave¶
- Unidad: archivo que define el servicio
- Ubicación:
/etc/systemd/system/o/usr/lib/systemd/system/
Comandos fundamentales¶
systemctl status ssh
systemctl start ssh
systemctl stop ssh
systemctl restart ssh
systemctl enable ssh # Arranque automático
systemctl disable ssh
Logs con journalctl¶
journalctl -u ssh
journalctl -xe
systemd centraliza procesos, servicios y logs en un único sistema coherente.
Puntos críticos / Errores comunes¶
- Matar procesos críticos (
systemd,sshd) - Uso excesivo de
kill -9 - No revisar consumo de recursos antes de actuar
- No habilitar servicios necesarios tras reinicio
- Ignorar procesos zombie o huérfanos
Consejo: observa primero, actúa después
Ejercicios prácticos¶
1. Identificar procesos con mayor uso de CPU¶
top
2. Lanzar un proceso con baja prioridad¶
nice -n 15 sleep 300 &
3. Detener y reanudar un proceso¶
kill -STOP PID
kill -CONT PID
4. Reiniciar un servicio y verificar logs¶
systemctl restart ssh
journalctl -u ssh -n 20
Mentalidad¶
- Nunca mates procesos sin saber qué hacen
- Prioriza estabilidad sobre rapidez
- Los logs son tu mejor aliado
- systemd es tu centro de control
- Automatiza pero verifica
Resumen¶
- Los procesos son programas en ejecución
ps,top,htoppermiten analizarlos- Las señales controlan su comportamiento
niceyreniceajustan prioridades- systemd gestiona servicios y demonios
- Una mala gestión de procesos puede tumbar sistemas enteros
Siguiente paso¶
En el siguiente módulo aprenderás sobre:
Paquetes y repositorios del sistema (paquetes.md)
Donde verás:
- Paquetes basados en distros
- Gestión de paquetes
- Dependencias
- Repositorios