Gestión de Procesos en Linux: Estados y Comandos Básicos

Clase 27 de 30Curso de Introducción a la Administración de Servidores Linux

Resumen

¿Qué son los estados de los procesos en Linux?

En el sistema operativo Linux, cada proceso tiene un estado específico que determina cómo interactúa con el sistema y sus recursos. Comprender estos estados es esencial para gestionar eficazmente los procesos. Los estados son:

  • Running o Runnable: Este estado se activa cuando el proceso está utilizando recursos de CPU o memoria.

  • Sleep: Hay dos tipos de estados de "sleep":

    • Uninterruptible sleep (D): El proceso está esperando a que haya suficientes recursos disponibles, no puede ser interrumpido y requiere una señal específica, como SIGKILL, para terminarlo.
    • Interruptible sleep (S): Este estado puede ser interrumpido y el proceso se puede finalizar con señales comunes, siempre que esté en espera.
  • Stopped (T): El proceso está pausado y no se ejecutará ni al liberar recursos, hasta que se le indique de manera explícita.

  • Zombie (Z): Un proceso que ha terminado de ejecutarse pero aún tiene una entrada en la tabla de procesos, lo que sucede cuando intenta terminar sin desvincularse del proceso original.

¿Cómo se gestionan los procesos en Linux?

La gestión de procesos en Linux se realiza mediante comandos y señales que permiten enviar un proceso al background, traerlo al foreground, pausarlo o incluso terminarlo. Esto es clave para profesionales que desean mantener sus sistemas organizados y eficaces.

Comandos básicos para la gestión de procesos

  1. Enviar un proceso al background: Para ejecutar un comando en segundo plano, simplemente añade un & al final del comando. Por ejemplo:

    les espera.txt &
    

    Esto ejecuta el proceso en background.

  2. Mostrar procesos en background: Usa jobs -l para listar los procesos en segundo plano.

  3. Traer un proceso al foreground: Utiliza el comando fg seguido del job-id para traer un proceso de vuelta al foreground:

    fg %1
    
  4. Pausar y reanudar procesos: Mediante Ctrl + Z se detiene un proceso y fg o bg para reanudarlo en foreground o background, respectivamente.

Terminar procesos

Para terminar procesos, especialmente aquellos en el background, se puede utilizar el comando kill seguido del Process ID (PID). Este comando envía una señal de terminación predeterminada (SIGTERM):

kill 1402

En caso de que el proceso no responda, se puede utilizar una señal más directa como SIGKILL (identificador 9):

kill -9 1402

¿Cómo usar HTOP para gestionar procesos?

htop es una herramienta interactiva que facilita la gestión de procesos en Linux. Proporciona una interfaz visual que permite:

  1. Ver todos los procesos actuales.
  2. Ordenar y filtrar procesos por ID, uso de CPU, memoria, etc.
  3. Terminar procesos seleccionando con F9 y escogiendo la señal deseada como SIGTERM o SIGKILL.

¿Cómo utilizar el comando killAll?

El comando killAll se utiliza para terminar todos los procesos que comparten el mismo nombre. Es especialmente útil para cerrar múltiples instancias de un programa simultáneamente:

killall les

Al utilizar estos comandos y herramientas, puedes convertirte en un experto en manejo de procesos de Linux, lo cual es una habilidad valiosa para cualquier profesional en tecnología. ¡Continúa explorando y practicando estas técnicas para dominar los procesos en Linux!