Un "trabajo en segundo plano" es solo uno que no interactúa con el usuario; no controla el tty y solo hace lo suyo (generalmente en silencio). Un trabajo en primer plano es lo contrario, tiene el control del tty para interactuar con el usuario.
Control-Z suspende el proceso de primer plano más reciente (el último proceso en interactuar con el tty) (a menos que ese proceso tome medidas para ignorar la suspensión, como lo hacen normalmente los shells). Esto generalmente lo llevará de regreso a su shell, desde donde generalmente puede ingresar el comando bg
para mover el proceso recién suspendido al fondo (dejando que continúe ejecutándose) o fg
para traerlo de vuelta al primer plano.
Al presionar Ctrl+Z se envía el TSTP
señal a su proceso. Esto detiene la ejecución (el kernel no programará más tiempo de CPU para el proceso) y el proceso está esperando un CONT para continuar con el procesamiento.
Puede emular/replicar esto a través de kill -TSTP
y kill -CONT
(desde kill
enviará una señal nominada a su proceso, ¡a pesar del nombre!)
El shell tiene la funcionalidad de "en segundo plano" el proceso, pero esta es una relación entre el shell y el proceso. El proceso en sí no tiene realmente el concepto de 'fondo' o 'primer plano'.
Consulte aquí para obtener más información.
Considere este comando, que toma aprox. 4,5 segundos en mi portátil:
echo 2^10000000 | bc -lq | wc -c
Cuando presiona Ctrl +Z , el cálculo se suspenderá. Tiene la opción de reanudar el cálculo en primer plano usando fg
, o reanudarlo en segundo plano usando bg
. Este último es más o menos equivalente a ejecutar:
echo 2^10000000 | bc -lq | wc -c &