Colocando um processo em segundo plano sem pará-lo - (ctrl + z)?

15

Se eu iniciar um processo digitando-o normalmente na linha de comando, como

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

e, em seguida, decidir que quero mover isso para o segundo plano, sei que posso usar algo como ctrl+z e, em seguida, bg 1 (ou jobs primeiro, se necessário, para obter o ID) para colocá-lo em segundo plano .

Minha pergunta é se existe uma maneira de mover um trabalho do primeiro plano diretamente para o segundo plano sem pará-lo - como outro atalho além de ctrl+z que faria isso.

Eu também percebo que posso acrescentar & ao final do comando original para iniciá-lo em segundo plano, mas a questão é quando você inicia um processo em primeiro plano e então perceba que você quer movê-lo para o fundo.

    
por cwd 01.10.2011 / 17:35

1 resposta

13

Sim, absolutamente: tela (1) é a resposta.

Para começar, adicione screen -R a ~ / .bash_profile ou equivalente, efetue logout e faça login novamente.

Para continuar o que está sendo executado em segundo plano, pressione Control-A e N. Isso criará uma nova tela de terminal em primeiro plano, enquanto continua continuamente o processo de execução em segundo plano.

Pressione Control-A e depois "para obter uma lista interativa de telas abertas, ou pressione Control-A e um número para alternar diretamente para uma tela específica.

Seu requisito original era poder mover um processo para o segundo plano sem interrompê-lo. A tela tem dois benefícios adicionais, e eles são enormes se você gosta de fazer várias coisas ao mesmo tempo:

  1. Você pode alternar entre processos com muito mais fluidez do que usando Control-Z, bg, fg, etc.
  2. Se sua sessão de terminal for desconectada, seus processos (como wget http://example.com/bigfile.iso ) NÃO serão encerrados! Todas as suas sessões de shell estarão à sua espera quando você se reconectar.

Para mais informações, leia a tela (1) manpage ou o Manual da Tela GNU .

    
por 01.10.2011 / 18:26