Como enviar trabalhos para segundo plano sem pará-los?

10

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

E como retomar um trabalho interrompido?

Jader Dias
fonte

Respostas:

17

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

"fg" move para o primeiro plano

Observe que bg e fg aceitam nºs 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.

Matt Simmons
fonte
8

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

por exemplo

myprogram &

observe que a saída (stdout e stderr) ainda irá para o tty atual; portanto, geralmente é uma boa idéia redirecionar para / dev / null ou para um arquivo de log, como:

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

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

cas
fonte
5

No bash, inserir um "bg" coloca o trabalho em segundo plano até bloquear a necessidade de entrada. Ele continuará sendo transmitido 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 estava iniciando um trabalho de cópia longo e suspendendo-o, iniciando um segundo trabalho de cópia longo e suspendendo-o, colocando o primeiro trabalho de cópia em segundo plano e deixando-o executar, seguido pelo primeiro trabalho de cópia saindo. Depois, coloquei o último trabalho de cópia em primeiro plano e o deixei terminar.

Evan Anderson
fonte
bg 1e fg 1não trabalho para mim, mas bg %1e fg %1fazer.
Alexej Magura
4

nohup task.sh &

É executado em segundo plano, a saída vai para nohup.out no diretório atual. Continua sendo executado quando você se desconecta.

Craig
fonte
2

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

Feno
fonte