12 Gestión de Procesos

Published Apr 8, 2023

Linuxprocess

En esta clase exploraremos cómo administrar procesos en Linux. Desde entender qué es un proceso hasta manipular su prioridad, visualización y finalización, te guiaremos paso a paso para dominar la gestión de procesos.

1. ¿Qué es un proceso?

Un proceso es un programa en ejecución que utiliza recursos del sistema como CPU, memoria, almacenamiento, etc. Cada proceso tiene un identificador único llamado PID (Process ID), asignado por el kernel.

2. Visualización de procesos

Comando ps

El comando ps muestra los procesos activos en la terminal actual.


ps

Columnas clave:

  • PID: Identificador único del proceso.
  • TTY: Terminal asociada al proceso.
  • TIME: Tiempo total de CPU usado por el proceso.
  • CMD: Comando que inició el proceso.

Ampliar información con ps aux


ps aux
  • a: Muestra procesos de todos los usuarios.
  • u: Incluye detalles de uso de CPU y memoria.
  • x: Incluye procesos en background.

Columnas adicionales:

  • %CPU: Porcentaje de CPU usado desde el inicio.
  • %MEM: Porcentaje de memoria utilizada.
  • STAT: Estado del proceso (Running, Sleeping, Zombie, etc.).

Filtrar procesos con grep


ps aux | grep wireshark

Esto filtra los procesos relacionados con “wireshark”.

3. Monitoreo dinámico de procesos

Comando top

top muestra procesos en tiempo real, ordenados por uso de CPU o memoria.


top

Teclas útiles:

  • C: Mostrar el path completo del comando.
  • H: Mostrar ayuda interactiva.
  • Q: Salir de top.

Comando htop

htop es una versión interactiva y más amigable de top.


htop
  • Permite seleccionar y finalizar procesos de forma visual.
  • Muestra los valores de nice y consumo de recursos claramente.

4. Gestión de prioridades: nice y renice

Prioridad de procesos

La prioridad en Linux se mide con el valor nice, que varía de -20 (alta prioridad) a 19 (baja prioridad). El valor por defecto es 0.

Iniciar un proceso con prioridad


nice -n 10 /usr/bin/wireshark

Esto inicia Wireshark con un valor de nice de 10.

  • Nota: Para valores negativos, se necesita permiso de superusuario:

    
    sudo nice -n -10 /usr/bin/wireshark
    

Modificar prioridad de un proceso existente: renice


renice -n 5 -p PID

Esto cambia el valor nice del proceso con el ID especificado.

5. Finalización de procesos

Comando kill

El comando kill envía señales a un proceso para manipularlo. Algunas señales comunes son:

  • 1 (HUP): Reinicia el proceso.
  • 2 (INT): Interrumpe el proceso (como Ctrl+C).
  • 9 (KILL): Termina el proceso inmediatamente.
  • 15 (TERM): Solicita al proceso que termine de forma ordenada.

Ejemplo:


kill -9 PID

Finalizar desde top o htop

  • top: Presiona k, ingresa el PID y elige la señal.
  • htop: Selecciona el proceso con las teclas de flecha, presiona F9 y elige la señal.

6. Procesos en segundo plano y foreground

  • Enviar un proceso al fondo:

    
    Ctrl+Z
    

    Esto pausa el proceso y lo envía al fondo.

  • Reanudar un proceso en foreground:

    
    fg
    

7. Calendarización de procesos: cron y at

cron

Se utiliza para tareas repetitivas como ejecutar scripts diarios, semanales, etc.

  • Editar crontab:

    
    crontab -e
    
  • Formato:Ejemplo:Esto ejecuta backup.sh todos los días a las 5:00 AM.

    
    Minuto Hora Día-del-Mes Mes Día-de-la-Semana Comando
    
    
    0 5 * * * /usr/bin/backup.sh
    

at

Se utiliza para tareas únicas en un momento específico.

  • Ejemplo:

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

    Esto ejecutará cleanup.sh a las 11:00 PM.

  • Finalizar una tarea programada:

    
    atrm JOB_ID
    

Conclusión

La gestión de procesos en Linux es fundamental para mantener el rendimiento y la estabilidad del sistema. Desde monitorizar recursos hasta priorizar tareas y calendarizar procesos, estas herramientas te ayudarán a administrar tu sistema de forma eficiente. ¡Practica estos comandos para perfeccionar tus habilidades y tomar el control total de tus procesos! 🚀

Elprogramadorgt - Blog © 2025