Contenido del curso

Foreground y background en la terminal

Resumen

Cuando trabajas en la terminal, controlar procesos en foreground y background te permite ejecutar tareas largas sin bloquear tu sesión. Aprenderás a enviar comandos al segundo plano, listarlos, pausarlos y traerlos de vuelta cuando los necesites. Es una habilidad clave para quienes automatizan tareas o administran sistemas desde la línea de comandos.

¿Qué son los procesos en foreground y background?

Cada vez que ejecutas un comando, este corre en foreground: ves su salida y debes esperar a que termine para seguir trabajando. El problema aparece cuando un comando tarda minutos u horas, como una actualización de base de datos o el envío masivo de correos. Ahí entra el background, ese "detrás de escenas" de tu terminal donde los procesos siguen corriendo mientras tú haces otra cosa.

¿Qué es un proceso en background? Es un comando que se ejecuta en segundo plano, liberando tu terminal para que puedas seguir escribiendo otros comandos mientras ese trabajo continúa.

¿Cómo simular un proceso largo con sleep?

Para practicar sin esperar tareas reales, puedes usar el comando sleep, que simplemente espera la cantidad de segundos que le indiques [00:54]. Por ejemplo, sleep 5 devuelve el control después de cinco segundos. También puedes encadenarlo con otros comandos:

bash sleep 3 && echo "comando finalizado"

Esto te sirve para simular escenarios reales como actualizaciones del sistema, scripts que envían correos o migraciones de datos [01:35]. Si en algún momento necesitas cortar la ejecución, presiona Ctrl + C y el proceso termina de inmediato.

¿Cómo enviar un comando al background?

El truco está en agregar un ampersand (&) al final del comando [02:18]. Con eso le dices a la terminal que la ejecución se mueva al segundo plano:

bash sleep 1000 && echo "base de datos actualizada" &

Al ejecutarlo, la terminal te muestra una salida confirmando que el proceso se envió al background, junto con un ID que lo identifica. Recuperas el control inmediatamente y puedes seguir trabajando.

¿Cómo listar los procesos en background con jobs?

El comando jobs te entrega la lista de procesos que están corriendo o pausados en segundo plano [02:55]. Cada uno aparece con su ID y su estatus, información que vas a necesitar para manipularlos.

bash jobs

¿Cómo traer un proceso al foreground?

Usas el comando fg seguido del ID del job, anteponiendo el símbolo % para hacer referencia a ese identificador [03:14]:

bash fg %1

Con esto, el proceso vuelve al primer plano y bloquea la terminal hasta que termine o lo interrumpas.

¿Cómo pausar y reanudar procesos en la terminal?

A veces no quieres terminar un proceso, solo congelarlo. Para eso existe Ctrl + Z, que pausa el proceso que tengas en foreground [03:48]. Si vuelves a ejecutar jobs, verás que el estatus cambió a pausado.

¿Cómo reanudo un proceso pausado en background? Usa el comando bg seguido del ID del job, por ejemplo bg %1. El proceso continúa su ejecución en segundo plano sin bloquear la terminal.

bash bg %1

Después puedes confirmar con jobs que el proceso volvió a correr.

¿Por qué importa manejar procesos en paralelo?

Esta capacidad es la base para automatizar tareas en sistemas Unix y Linux. Puedes encolar varios procesos en background y dejarlos corriendo en paralelo: una actualización de base de datos, el envío de emails, cambios de permisos y actualizaciones del sistema, todo al mismo tiempo. Cada job tiene su propio ID, y con jobs, fg, bg, el ampersand, Ctrl + C y Ctrl + Z tienes el control completo.

¿Qué tarea repetitiva automatizarías tú con procesos en background? Cuéntame en los comentarios cómo la implementarías.