Como enviar trabalhos para segundo plano sem interrompê-los?

Como enviar trabalhos para segundo plano sem interrompê-los?

Ctrl+z envia o trabalho atual para segundo plano, mas o interrompe.

E como retomar um trabalho parado?

Responder1

você pode executar "bg" para executá-lo em segundo plano.

"fg" move-o para o primeiro plano

Observe que bg e fg usam números de trabalho em vez de PIDs, portanto, se você tiver vários trabalhos em execução ao mesmo tempo, use o comando "jobs" para obter os números dos trabalhos.

Responder2

você também pode iniciar um programa como um trabalho em segundo plano com um "&" na linha de comando.

por exemplo

meu programa &

observe que a saída (stdout e stderr) ainda irá para o tty atual, então geralmente é uma boa ideia redirecionar para /dev/null ou para um arquivo de log, assim:

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

em qualquer um dos exemplos, é um trabalho em segundo plano como qualquer outro, então você ainda pode trazê-lo de volta ao primeiro plano com 'fg' (mas se você redirecionou a saída, não verá muita coisa).

Responder3

No bash, inserir um "bg" coloca o trabalho em segundo plano até bloquear a necessidade de entrada. Ele continuará a gerar saída para STDERR e STDOUT, o que pode ser inútil. Você pode inserir "fg" para trazer o trabalho de volta ao primeiro 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 ~]$ 

Então, isso foi iniciar um trabalho de cópia longo e suspendê-lo, iniciar um segundo trabalho de cópia longo e suspendê-lo, depois colocar o primeiro trabalho de cópia em segundo plano e deixá-lo ser executado, seguido pela saída do primeiro trabalho de cópia. Então coloquei o último trabalho de cópia em primeiro plano e deixei terminar.

Responder4

Outra opção é o excelentetelautilitário, que pode ser usado para executar vários processos ao mesmo tempo, sem a necessidade de manter um terminal aberto. Também permite uma interatividade muito mais fácil do que bg e fg.

informação relacionada