Primero, arranque el proceso yes en primer plano, como
hizo antes:
Otra vez, como yes está ejecutándose en primer plano, no debería ver
el símbolo del intérprete de órdenes.
Ahora, mejor que interrumpir la tarea con Ctrl-C, suspéndala.
Suspender una tarea no la mata: sólo la detiene temporalmente
hasta que se la reinicia de nuevo. Para hacer esto, pulse la tecla de suspensión, que
normalmente es Ctrl-Z.
Mientras la tarea está suspendida, simplemente no está en ejecución. No se
emplea tiempo de CPU para esa tarea. Sin embargo, puede reiniciar la tarea, lo que provoca
que se ejecute otra vez como si nada hubiera pasado. Continuará su ejecución
por donde se quedó.
Para reiniciar la tarea en primer plano, utilice la orden
fg (de ''foreground'').
El intérprete de órdenes muestra el nombre de la orden otra vez para que esté al tanto de qué tarea
acaba de mandar a primer plano. Detenga la tarea otra vez con Ctrl-Z.
Esta vez, use la orden bg para pasar la tarea a segundo plano.
Esto provoca que la orden se ejecute como si lo hubiera arrancado con
''&'', como en la última sección.
Y aquí tiene su símbolo del intérprete de órdenes de vuelta. jobs debería informar que yes
está ciertamente ejecutándose, y puede matar la tarea con kill como
hicimos antes.
¿Cómo se puede detener la tarea otra vez? Utilizar Ctrl-Z no funcionará, porque la tarea está en segundo plano. La respuesta es pasar la tarea a primer plano con fg, y luego detenerla. Tal y como parece, puede utilizar fg tanto en tareas detenidas como en tareas en segundo plano.
Hay una gran diferencia entre una tarea en segundo plano y una tarea detenida. Una tarea detenida no está en ejecución --no está usando tiempo de CPU, y no está haciendo nada (la tarea todavía ocupa memoria del sistema, aunque puede haber sido volcada a disco). Una tarea en segundo plano sí está ejecutándose y usando memoria, al tiempo que completa alguna acción mientras usted hace otra cosa.
Sin embargo, una tarea en segundo plano puede intentar mostrar texto por
el terminal, lo que puede resultar molesto si está intentando trabajar en
otra cosa. Por ejemplo, si utilizó la orden
sin redirigir stdout a /dev/null, una cadena de ys
estará apareciendo en la pantalla, sin posibilidad de interrumpirla.
(No se puede usar Ctrl-C para interrumpir tareas en segundo plano.)
Para detener las infinitas ys, utilice la orden fg para
pasar la tarea a primer plano, y luego utilice Ctrl-C
para matarla.
Otra nota. Las órdenes fg y bg normalmente afectan a la última
tarea detenida (indicado por un ''+'' junto al número de tarea
cuando se usa la orden jobs).
Si está ejecutando diversas tareas a la vez, puede pasar tareas a primer o
segundo plano pasando el número de tarea como argumento a fg o bg, como en
(para pasar la tarea número 2 a primer plano), o
(para pasar la tarea número 3 a segundo plano). No se pueden usar identificadores
de proceso (PID) con fg o bg.
Además, usar el número de tarea sólamente, como en
equivale a
Recuerde que el control de tareas es una característica del intérprete de órdenes. Las instrucciones fg, bg y tareas son internas del intérprete de órdenes. Si por cualquier motivo usted utiliza un intérprete de órdenes que no soporte control de tareas, no espere encontrar estas instrucciones disponibles.
Por añadidura, hay algunos aspectos del control de tareas que varían entre bash y tcsh. De hecho, algunos intérpretes de órdenes no proporcionan control de tareas en absoluto--de cualquier manera, la mayoría de los intérpretes de órdenes disponibles para sí lo proporcionan.