Poner un proceso en segundo plano sin detenerlo - (ctrl + z)?

16

Si comienzo un proceso escribiéndolo normalmente en la línea de comando, como

wget http://site.com/bigfile.zip

y luego decido que quiero mover eso a un segundo plano, sé que puedo usar algo como ctrl+zy luego bg 1(o jobsprimero si es necesario para obtener la identificación) para ponerlo en segundo plano.

Mi pregunta es si hay una manera de mover un trabajo desde el primer plano directamente al fondo sin detenerlo, como otro atajo además de ctrl+zeso haría eso.

También me doy cuenta de que puedo agregar &al final del comando original para iniciarlo en segundo plano, pero la pregunta se refiere a cuándo iniciar un proceso en primer plano y luego darse cuenta de que desea moverlo a segundo plano.

cwd
fuente

Respuestas:

14

Sí, absolutamente: la pantalla (1) es la respuesta.

Para comenzar, agregue screen -Ra ~ / .bash_profile o equivalente, cierre la sesión y vuelva a iniciarla.

Para continuar con lo que se está ejecutando en segundo plano, presione Control-A y luego N. Esto creará una nueva pantalla de terminal en primer plano mientras continúa sin interrupciones su proceso de ejecución en segundo plano.

Presione Control-A y luego "para obtener una lista interactiva de pantallas que haya abierto, o presione Control-A y luego un número para cambiar directamente a una pantalla específica.

Su requisito original era poder mover un proceso a un segundo plano sin detenerlo. La pantalla tiene dos beneficios adicionales, y estos son enormes si desea hacer varias cosas a la vez:

  1. Puede cambiar entre procesos de manera mucho más fluida que usando Control-Z, bg, fg, etc.
  2. ¡Si su sesión de terminal se desconecta, sus procesos (como wget http://example.com/bigfile.iso) NO terminarán! Todas tus sesiones de shell estarán allí esperándote cuando vuelvas a conectarte.

Para obtener más información, lea la página de manual de la pantalla (1) o el Manual de pantalla de GNU .

Skyhawk
fuente
1
Solo asegúrese de tener el screenpaquete instalado primero :)
George Tasioulis