11 Gestión de Procesos en Linux

Published Apr 13, 2023

Linuxprocess

🧠 Introducción

Un sistema Linux ejecuta muchos procesos todo el tiempo: algunos visibles, otros en segundo plano.

Saber cómo ver, controlar y automatizar estos procesos es una habilidad clave para administradores, desarrolladores y cualquier persona que trabaje en Linux.

1. ¿Qué es un Proceso?

Un proceso es cualquier programa en ejecución.

Cuando ejecutas un comando o abres una aplicación, el sistema crea un proceso y le asigna un PID (Process ID), que es su identificador único.

2. Ver procesos activos

🧾 Comando ps

ps

Muestra los procesos activos en tu terminal actual. Columnas importantes:

  • PID: ID del proceso.
  • TTY: Terminal asociada.
  • TIME: Tiempo total de CPU utilizado.
  • CMD: Comando que inició el proceso.

📋 ps aux – Vista completa

ps aux

Muestra todos los procesos del sistema. Opciones:

  • a: Todos los usuarios.
  • u: Incluye uso de CPU/Memoria.
  • x: Incluye procesos sin terminal asociada.

Filtra por nombre:

ps aux | grep firefox

3. Monitoreo en Tiempo Real

📊 Comando top

top

Muestra procesos en vivo, ordenados por uso de recursos.

Atajos útiles:

  • q: salir.
  • h: ayuda.
  • C: mostrar el path completo del comando.

💻 Comando htop (más visual)

htop
  • Usa flechas para seleccionar procesos.
  • Presiona F9 para finalizar uno.
  • Muestra recursos, prioridad (nice), memoria, etc.

🔧 Puede requerir instalación: sudo apt install htop

4. Prioridad de Procesos: nice y renice

Linux usa un valor llamado nice para determinar la prioridad del proceso:

  • Rango: 20 (máxima prioridad) a 19 (mínima).
  • Por defecto: 0.

🏁 Iniciar con prioridad personalizada:

nice -n 10 comando

Ejemplo:

nice -n 10 firefox

🔧 Cambiar prioridad de un proceso activo:

renice -n 5 -p PID

⚠️ Para valores negativos, se necesita sudo.

5. Finalizar procesos

✋ Usar kill:

kill -9 PID
  • 9: Mata el proceso inmediatamente.
  • 15: Termina de forma ordenada (recomendado cuando sea posible).

Señales comunes:

Señal Descripción
1 Reiniciar (HUP)
2 Interrumpir (Ctrl+C)
9 Forzar cierre (KILL)
15 Cierre elegante (TERM)

🧼 Desde top y htop

  • En top: presiona k, escribe el PID y la señal.
  • En htop: selecciona el proceso → F9 → elige señal.

6. Procesos en segundo plano

🕹️ Comandos:

  • Ctrl + Z: Pausa el proceso y lo manda al fondo.
  • bg: Continúa en segundo plano.
  • fg: Trae el proceso al frente.

Ejemplo:

firefox
# Presiona Ctrl+Z
bg

7. Automatizar tareas: cron y at

⏰ Usar cron para tareas repetitivas

crontab -e

Ejemplo: ejecutar un script todos los días a las 5:00 AM:

0 5 * * * /usr/bin/backup.sh

Formato:

Minuto Hora Día-del-Mes Mes Día-de-la-Semana Comando

📌 Usar at para tareas únicas

echo "/usr/bin/cleanup.sh" | at 23:00

Ver tareas pendientes:

atq

Cancelar una tarea:

atrm <JOB_ID>

⚠️ Asegúrate de que el servicio atd esté activo.

🧪 Práctica Recomendada

  1. Usa ps aux y htop para ver procesos.
  2. Cambia la prioridad de algún proceso con nice o renice.
  3. Ejecuta un comando en segundo plano con Ctrl+Z + bg.
  4. Mata un proceso de prueba con kill -15 PID.
  5. Crea una tarea con cron y otra con at para automatizar un script.

📘 Próximos Pasos

  • Aprende sobre señales con kill -l.
  • Explora herramientas como systemctl, journalctl y service.
  • Automatiza procesos más complejos con cron y redirección de logs.
  • Revisa man ps, man top, man nice, man crontab para más opciones.

🎯 Conclusión

Gestionar procesos en Linux no es solo cuestión de ver qué está corriendo:

es optimizar el rendimiento, automatizar tareas y reaccionar rápido ante problemas.

Con las herramientas y comandos vistos (ps, htop, nice, cron, etc.), tienes control total para gestionar el comportamiento de tu sistema.

¡Sigue practicando y conviértete en un maestro de procesos Linux! 🚀🐧