bash – ctrl c frente a ctrl z con trabajo en primer plano

Pregunta:

Ctrl + Z detiene el trabajo mientras que Ctrl + C lo mata.

¿Porqué es eso? ¿No tendría más sentido lo contrario?

z@z-lap:~$ sleep 100&
[1] 4458
z@z-lap:~$ sleep 200&
[2] 4459
z@z-lap:~$ jobs
[1]-  Running                 sleep 100 &
[2]+  Running                 sleep 200 &
z@z-lap:~$ fg %1
sleep 100
^Z
[1]+  Stopped                 sleep 100
z@z-lap:~$ jobs
[1]+  Stopped                 sleep 100
[2]-  Running                 sleep 200 &
z@z-lap:~$ fg %1
sleep 100
^C
z@z-lap:~$ jobs
[2]+  Running                 sleep 200 &

Respuesta:

Creo que puede estar confundido acerca de la notación de control de trabajos. En particular, "Detenido" significa que un trabajo todavía está activo pero que se ha retenido su capacidad para procesar cualquier cosa (no se le da tiempo en la CPU para procesar nada). Este es efectivamente un estado de "Pausa" o "Suspendido", aunque ese no es el término técnico correcto.

  • Ctrl C no "detiene" un trabajo, lo cancela o lo mata. Técnicamente, hace que se envíe una señal de interrupción al programa indicándole que cancele lo que está haciendo y salga inmediatamente. Algunos programas escucharán esta señal y harán un trabajo de limpieza de emergencia en sí mismos antes de salir. Otros no responderán a la señal y posteriormente simplemente se cancelarán.

  • Ctrl Z , por otro lado, "detiene" un trabajo. Nuevamente, esto se hace con una señal, pero esta vez es una señal de "parada" en lugar de una señal de "interrupción". Esto efectivamente lo pone en espera y devuelve el control al shell, pero en realidad no elimina el trabajo. Si desea que ese trabajo continúe ejecutándose, puede emitir un comando bg para enviar el último trabajo detenido a un segundo plano. Luego continuará ejecutándose como un trabajo en segundo plano como si lo hubiera ejecutado con & en primer lugar. También puede usar fg para reanudar el último trabajo detenido en primer plano (lo que le permite continuar donde lo dejó y le permite interactuar con él nuevamente).

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım