colocar um trabalho no bg e executá-lo?

2

Eu sei que existem duas ou mais maneiras de executar um trabalho e colocá-lo em segundo plano.

Neste momento usei ctrl-z para colocar uma transferência scp em segundo plano porque notei que ia demorar um pouco. Como executo o processo em segundo plano para poder escrever outros comandos enquanto aguardo até que seja feito?

Nota: Eu posso criar um novo terminal, no entanto, neste caso, eu usei o SSH em dois servidores diferentes, por isso é inconveniente fazer isso para cada trabalho simultâneo que eu quero em segundo plano.

    
por Dennis Williamson 21.10.2009 / 17:24

4 respostas

5

Depois de usar ^ Z para STOP something, digite "bg" para deixá-lo rodar em segundo plano. "fg" trará de volta para a frente, desde que você não tenha desconectado.

    
por 21.10.2009 / 21:43
9

É importante observar que, enquanto alguns processos usam CTRL + Z como plano de fundo, o comportamento padrão é STOP, o que não continua a execução. A maneira mais segura é executar o comando com um & no final, execute "negar" para forçar o fundo completamente. Você não poderá, porém, ressaltar novamente.

Se você quiser uma maneira fácil de monitorar tarefas em segundo plano, considere aprender sobre screen . Como lição básica, digite screen scp myfile server:/mydest e digite CTRL + A D para "desanexar" a sessão da tela. Você pode se lembrar desta sessão digitando "screen -r", mesmo depois de fazer o logoff da máquina! :)

screen tem muitos recursos mais avançados, como várias janelas, uma barra de tarefas ativa, etc. Aqui está um guia: link

    
por 21.10.2009 / 17:40
1

Para comandos em segundo plano, basta adicionar & depois do comando.

    
por 21.10.2009 / 17:29
1

Eu recomendaria a execução de programas como o scp na tela. A razão é que, colocando o comando em segundo plano, ele despeja a saída em seu terminal atual e você não pode facilmente se desconectar de uma sessão ssh e se reconectar a ela no meio do seu trabalho.

Tela de execução. Você terá um novo terminal na sua frente. Execute o seu processo. Agora pressione "ctrl-a d" e você deverá receber uma linha dizendo

[Screen detached]

Você pode se reconectar à sua tela executando:

# screen -r

Você deve recuperar seu terminal original.

    
por 21.10.2009 / 17:36