Linux / Comando bg: reanudar un trabajo suspendido en segundo plano

bg reanuda en segundo plano un trabajo suspendido del shell Bash actual. Tras suspender un comando con Ctrl+Z, puede consultar su número con jobs y reanudarlo con bg para seguir utilizando el terminal.

bg envía una señal de continuación a un trabajo detenido, pero no otorga el control del terminal en primer plano. El número de trabajo se verifica con jobs y se especifica como %1. Los programas interactivos que esperan entrada pueden detenerse nuevamente en segundo plano.

Sintaxis básica

bg [%número_de_trabajo]

La implementación instalada y las opciones pueden variar según la distribución. Verifique la descripción de help bg en el sistema actual.

Ejemplos de uso

Ver trabajos detenidos

Durante la ejecución de un comando en primer plano, se presiona Ctrl+Z y luego se verifica el estado.

jobs -s

Reanudar un trabajo específico en segundo plano

En el ejemplo, cambie %1 por el número que realmente se muestra en jobs.

bg %1

Verificar el resultado de la reanudación

Compruebe si está en estado Running.

jobs -l

Enviar la tarea pausada a segundo plano

bg continúa ejecutando en segundo plano trabajos que están en pausa en el shell. Por ejemplo, se ejecuta sleep 60, luego se detiene con Ctrl+Z y se verifica el número del trabajo.

jobs
bg %1
jobs

Cambio de estado de ejemplo:

[1]+  Stopped  sleep 60
[1]+  Running  sleep 60 &

%1 no es un PID, sino que se refiere al número de trabajo 1 del shell actual. Si el shell no admite el control de trabajos o no hay trabajos en pausa, bg fallará. Una vez que el trabajo termine, puede desaparecer de jobs, así que verifique el estado nuevamente.

Opciones y formatos principales

Opciones·Formato Descripción
%N Especifica el trabajo número N del shell actual.
%+ Se asigna el trabajo actual.
%- Especifica el trabajo anterior.
Sin argumento Usa la tarea que Bash considera como la tarea actual.

Precauciones al usar

Las tareas detenidas con Ctrl+Z aún no se están ejecutando. Incluso si se reanudan con bg, las tareas que intentan leer la entrada estándar pueden volverse a detener. bg es una función de control de trabajos del shell, por lo que no se puede aplicar a procesos iniciados desde otro terminal.

Preguntas frecuentes

¿Es lo mismo poner & al final de un comando que usar bg?

& se inicia en segundo plano desde el principio, mientras que bg reanuda en segundo plano un trabajo actual del shell que ya estaba detenido.

Documentación oficial

Se pueden verificar el comportamiento exacto de las opciones y las diferencias según la implementación en la documentación oficial de bg.