Joaquin Martinez

Depura tus errores y construye la mejor versión de ti, cada línea cuenta.

Introducción al manejo de procesos en Linux (foreground, background, kill y más)

24-03-2025
Sistemas operativos
Linux y bash scripting
Cover Post

Gestión de Procesos en Linux: Comandos Esenciales para el Día a Día

En el mundo de los sistemas operativos, cada tarea que realizamos desde escribir un documento hasta navegar por internet se maneja a través de procesos. En Linux, cada proceso es una instancia de un programa en ejecución, con su propio identificador único (PID) y una porción de memoria asignada.

Este post es una guía práctica para entender y gestionar los procesos en Linux, una habilidad fundamental para cualquier usuario o administrador de sistemas. Exploraremos los comandos clave para iniciar, detener, y supervisar tus aplicaciones, permitiéndote tomar el control total de tu entorno de trabajo.

¿Qué es un proceso en Linux?

Cuando abres una aplicación, como tu navegador web o un editor de texto, el sistema operativo crea un proceso para que esta pueda funcionar. Este proceso se convierte en la representación de la aplicación en ejecución. Cada proceso en Linux tiene asociado un número de identificación único, conocido como PID (Process ID), y se le asigna una porción de memoria RAM para su ejecución.

Tipos de procesos

En Linux, los procesos se clasifican principalmente en tres tipos:

  • Procesos en primer plano (foreground): Requieren la interacción directa del usuario y bloquean la terminal de comandos mientras se ejecutan.

  • Procesos en segundo plano (background): Se ejecutan sin interacción directa del usuario, liberando la terminal para que puedas seguir trabajando.

  • Procesos del sistema (daemons): Son procesos especiales que se ejecutan de forma continua en segundo plano y se encargan de tareas de bajo nivel, como la gestión de servicios de red o el control de hardware.

Manejo de procesos en Linux: Comandos prácticos

Para comprender mejor cómo funciona la gestión de procesos, vamos a ver algunos comandos esenciales.

  1. Iniciar un proceso en primer plano

    La forma más común de ejecutar un programa es simplemente escribiendo su nombre en la terminal. Por ejemplo, para iniciar el navegador Mozilla Firefox:

     firefox
    

    Al ejecutar este comando, el navegador se abrirá y la terminal quedará bloqueada hasta que cierres el programa. Este es un ejemplo claro de un proceso en primer plano.

    alt text

  2. Iniciar un proceso en segundo plano

    Si quieres ejecutar una aplicación sin que bloquee tu terminal, puedes enviarla a segundo plano. Esto es útil para programas que no requieren que interactúes con ellos constantemente. Para ello, solo necesitas añadir un & al final del comando.

     firefox &
    

    Al ejecutarlo, la terminal te devolverá el PID del proceso y un número de trabajo, y podrás seguir usando la terminal de inmediato.

    alt text

  3. Listar procesos en segundo plano

    Si tienes varios procesos en segundo plano y quieres ver cuáles están activos, usa el comando jobs.

     jobs
    

    Este comando te mostrará una lista de los procesos que has iniciado y que se están ejecutando en segundo plano, incluyendo su estado y el número de trabajo.

    alt text

  4. Pasar un proceso a primer plano

    Si un proceso se está ejecutando en segundo plano y necesitas interactuar con él, puedes traerlo de nuevo al primer plano con el comando fg (de foreground).

     fg %1
    

    En este caso, %1 se refiere al número de trabajo que jobs le asignó al proceso. Si solo hay un proceso en segundo plano, puedes usar simplemente fg.

    También puedes hacer uso del nombre del proceso.

     fg soffice
    

    alt text

  5. Suspender un proceso

    A veces, no quieres cerrar un programa, sino simplemente pausarlo temporalmente. Si una aplicación se está ejecutando en primer plano, puedes suspender su ejecución con la combinación de teclas Ctrl + Z.

    alt text

    Por ejemplo, si tienes libre office en ejecución, al presionar Ctrl + Z verás que su proceso se detiene y la terminal vuelve a estar disponible.

    alt text

  6. Reanudar un proceso suspendido en segundo plano

    Para reanudar un proceso que has suspendido con Ctrl + Z y enviarlo a segundo plano, usa el comando bg (de background).

     bg [nombre del proceso]
    

    alt text

  7. Identificar y eliminar procesos

    Gestionar procesos también implica poder cerrarlos si ya no son necesarios o si se han bloqueado. Para esto, necesitas conocer su PID.

    • Encontrar el PID de un proceso: Usa el comando pgrep seguido del nombre del programa.
     pgrep [nombre del proceso]
    

    Este comando te devolverá el PID (o PIDs, si hay varias instancias) del proceso que buscas.

    alt text

    • Eliminar un proceso: Una vez que tienes el PID, puedes usar el comando kill.
     kill 7977
    

    Donde 7977 es el PID que obtuviste con pgrep.

    alt text

  8. Visualizar todos los procesos del sistema

    Para tener una vista completa de todos los procesos que se están ejecutando en tu sistema, usa el comando ps aux.

     ps aux
    

    Este comando muestra una lista detallada de cada proceso, incluyendo el usuario que lo inició, el PID, el uso de CPU y memoria, y el tiempo de ejecución.

    alt text

  9. Filtrar la salida de ps aux con grep

    La salida de ps aux puede ser muy larga. Para encontrar información específica de un proceso, puedes combinarlo con el comando grep (que se usa para buscar texto en la salida de otros comandos) a través de una “pipe” (|). Por ejemplo, para ver solo los procesos relacionados con Firefox:

     ps aux | grep firefox
    

    Esto te mostrará únicamente las líneas que contienen la palabra “firefox”, lo que facilita encontrar su PID.

    alt text

  10. Ejemplo práctico: Eliminar un proceso de Firefox

    Ahora, combinemos lo aprendido. Si quieres cerrar Firefox desde la terminal sin que bloquee la interfaz gráfica:

    1. Encuentra su PID con ps aux grep firefox.
    2. Ejecuta kill con el PID que encontraste.

    3. Vuelve a ejecutar el comando de filtrado para verificar que el proceso ha sido eliminado.

    alt text

Con estos comandos, tienes las herramientas necesarias para gestionar los procesos en Linux de manera eficiente, lo que te permitirá controlar mejor tu sistema y resolver problemas rápidamente.

Post Siguiente

El comando Grep: Búsqueda y filtrado de patrones en Linux

Post Anterior

Pipes en Linux: El poder de encadenar comandos