GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es el efecto de CTRL + Z en una aplicación de Unix\Linux?

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 &

Linux
  1. ¿Qué proceso creó esta ventana X11?

  2. ¿Qué hace Ctrl+v en Vim?

  3. ¿Qué sucede cuando un hilo se bifurca?

  4. ¿Qué hacer cuando Ctrl + C no puede matar un proceso?

  5. ¿Cuál es la definición de una sesión en Linux?

¿Qué indica esta estadística de proceso?

SIGTERM vs SIGKILL:¿Cuál es la diferencia?

Repensando DevOps:¿De qué se trata?

¿Qué es un proceso detenido en Linux?

¿Qué es un comando para encontrar la prioridad del proceso en Linux?

¿Qué son las señales pendientes?