¿Cómo enviar trabajos a segundo plano sin detenerlos?

10

Ctrl + z envía el trabajo actual a segundo plano, pero lo detiene.

¿Y cómo reanudar un trabajo detenido?

Jader Dias
fuente

Respuestas:

17

puede ejecutar "bg" para ejecutarlo en segundo plano.

"fg" lo mueve al primer plano

Tenga en cuenta que bg y fg toman los números de trabajo en lugar de los PID, por lo que si tiene varios trabajos ejecutándose a la vez, use el comando "trabajos" para obtener los números de trabajo.

Matt Simmons
fuente
8

También puede iniciar un programa como trabajo en segundo plano con un "&" en la línea de comando.

p.ej

mi programa &

tenga en cuenta que la salida (tanto stdout como stderr) seguirá yendo al tty actual, por lo que generalmente es una buena idea redirigir a / dev / null o a un archivo de registro, así:

myprogram> ~ / program.log 2> & 1 &

En cualquier ejemplo, es un trabajo en segundo plano como cualquier otro, por lo que aún puede volver a ponerlo en primer plano con 'fg' (pero si ha redirigido la salida, no verá mucho).

cas
fuente
5

En bash, ingresar un "bg" pone el trabajo en segundo plano hasta que bloquea la necesidad de entrada. Continuará enviando a STDERR y STDOUT que podrían ser inútiles. Puede ingresar "fg" para volver a poner el trabajo en primer plano.

[adjuster@mx02 ~]$ cp ~/crap/* ~/crap2 
(Ctrl-Z)
[1]+  Stopped                cp ~/crap ~/crap2 

[adjuster@mx02 ~]$ cp ~/crap3/* ~/crap4
(Ctrl-Z)
[2]+  Stopped                cp ~/crap3/* ~/crap

[adjuster@mx02 ~]$ jobs
[1]+  Stopped                cp ~/crap ~/crap2 
[2]+  Stopped                cp ~/crap3/* ~/crap

[adjuster@mx02 ~]$ bg 1
[1]- cp ~/crap ~/crap2 &
[1]-  Exit 1                  cp ~/crap ~/crap2 

[adjuster@mx02 ~]$ fg 2
[adjuster@mx02 ~]$ 

Entonces, eso fue comenzar un trabajo de copia larga y suspenderlo, comenzar un segundo trabajo de copia larga y suspenderlo, luego poner el primer trabajo de copia en segundo plano y dejarlo ejecutar, seguido de la salida de ese primer trabajo de copia. Luego puse el último trabajo de copia en primer plano y lo dejé terminar.

Evan Anderson
fuente
bg 1y fg 1no trabajes para mí, pero bg %1y fg %1hazlo.
Alexej Magura
4

nohup task.sh &

Se ejecuta en segundo plano, la salida va a nohup.out en el directorio actual. Continúa ejecutándose cuando cierra sesión.

Craig
fuente
2

Otra opción es la excelente utilidad de pantalla , que se puede utilizar para ejecutar muchos procesos al mismo tiempo, sin tener que mantener un terminal abierto. También permite una interactividad mucho más fácil que bg y fg.

Heno
fuente