Controle de Tarefas no shell - comandos bg, fg, jobs - Linux
Índice:
- Execute um comando Linux em segundo plano
- Mover um processo em primeiro plano para o plano de fundo
- Manter processos em segundo plano em execução após a saída de um shell
- Alternativas
- Tela
- Tmux
- Conclusão
Normalmente, quando você executa um comando no terminal, precisa aguardar até que o comando termine antes de poder inserir outro. Isso é chamado de execução do comando no processo em primeiro plano ou em primeiro plano. Quando um processo é executado em primeiro plano, ele ocupa seu shell e você pode interagir com ele usando os dispositivos de entrada.
E se o comando demorar muito para terminar e você quiser executar outros comandos enquanto isso? Você tem várias opções à sua disposição. A opção mais óbvia e direta é iniciar uma nova sessão do shell e executar o comando nela. Outra opção é executar o comando em segundo plano.
Um processo em segundo plano é um processo / comando iniciado em um terminal e executado em segundo plano, sem interação do usuário., falaremos sobre os processos em segundo plano é o Linux. Mostraremos como iniciar um comando em segundo plano e como manter o processo em execução após o encerramento da sessão do shell.
Execute um comando Linux em segundo plano
Para executar um comando em segundo plano, adicione o símbolo
&
comercial (
&
) no final do comando:
command &
O ID do trabalho do shell (entre colchetes) e o ID do processo serão impressos no terminal:
25177
Você pode ter vários processos em execução em segundo plano ao mesmo tempo.
O processo em segundo plano continuará gravando mensagens no terminal a partir do qual você chamou o comando. Para suprimir as mensagens
stdout
e
stderr
use a seguinte sintaxe:
command > /dev/null 2>&1 &
>/dev/null 2>&1
significa redirecionar
stdout
para
/dev/null
e
stderr
para
stdout
.
Use o utilitário
jobs
para exibir o status de todos os jobs interrompidos e em segundo plano na sessão atual do shell:
jobs -l
A saída inclui o número do trabalho, o ID do processo, o estado do trabalho e o comando que iniciou o trabalho:
+ 25177 Running ping google.com &
Para trazer um processo em segundo plano para o primeiro plano, use o comando
fg
:
fg
fg %1
Para finalizar o processo em segundo plano, use o comando
kill
seguido pelo ID do processo:
Mover um processo em primeiro plano para o plano de fundo
Para mover um processo em primeiro plano em execução em segundo plano:
- Pare o processo digitando
Ctrl+Z
Mova o processo parado para o segundo plano digitandobg
.
Manter processos em segundo plano em execução após a saída de um shell
Se sua conexão cair ou você sair da sessão do shell, os processos em segundo plano serão encerrados. Existem várias maneiras de manter o processo em execução após o término da sessão do shell interativo.
Uma maneira é remover o trabalho do controle de trabalho do shell usando o shell rejeitado incorporado:
disown
disown %1
Confirme se o trabalho foi removido da tabela de trabalhos ativos usando o comando
jobs -l
. Para listar todos os processos em execução, incluindo os renegados, use o comando
ps aux
.
Outra maneira de manter um processo em execução após a saída do shell é usar
nohup
.
O comando
nohup
executa outro programa especificado como argumento e ignora todos os sinais
SIGHUP
(hangup).
SIGHUP
é um sinal enviado a um processo quando seu terminal de controle é fechado.
Para executar um comando em segundo plano usando o comando
nohup
, digite:
nohup command &
A saída do comando é redirecionada para o arquivo
nohup.out
.
nohup: ignoring input and appending output to 'nohup.out'
Alternativas
Existem vários programas que permitem ter várias sessões interativas ao mesmo tempo.
Tela
Screen ou GNU Screen é um programa multiplexador de terminal que permite iniciar uma sessão de tela e abrir qualquer número de janelas (terminais virtuais) dentro dessa sessão. Os processos em execução na Tela continuarão em execução quando a janela não estiver visível, mesmo se você for desconectado.
Tmux
O Tmux é uma alternativa moderna à tela GNU. Com o Tmux, você também pode criar uma sessão e abrir várias janelas dentro dessa sessão. As sessões do Tmux são persistentes, o que significa que os programas em execução no Tmux continuam sendo executados mesmo se você fechar o terminal.
Conclusão
Para executar um comando em segundo plano, inclua
&
no final do comando.
Quando você executa um comando em segundo plano, não precisa esperar até que ele termine para poder executar outro.
nohup fg bg jobs renúncia terminalA liderança inicial do Bing sobre o Yahoo não é um indicativo de como se sairá em longo prazo, dizem analistas O Bing, da Microsoft, ultrapassou o Yahoo Search em apenas quatro dias de lançamento, segundo a StatCounter, empresa de análise da Web, mas é cedo demais para dizer até que ponto o novo mecanismo de busca se comportará no longo prazo. tornou-se o segundo maior mecanismo de buscas nos EUA e no mundo, com 16,28 por cento de buscas nos 10,22 por cento do Yahoo nos EUA e 5,62 por cento no B

[Mais leitura: Os melhores serviços de streaming de TV]
Remessas de PCs mais fortes do que as esperadas no segundo trimestre, diz o IDC Os embarques de PCs foram ligeiramente mais fortes do que o esperado no segundo trimestre, sustentados pelos gastos do consumidor e preços mais baixos, segundo pesquisa do IDC divulgada na quarta-feira. O forte interesse em computadores portáteis, incluindo netbooks e laptops, ajudou a mitigar os efeitos do recessão, embora os embarques mundiais de PCs tenham caído 3,1% em relação ao mesmo trimestre do ano anterior,

Foi o segundo trimestre consecutivo que os embarques diminuíram menos do que o previsto.
Executar comandos do Windows Iniciar caixa de pesquisa como administrador

No Windows 8 | 7 | Vista, você pode executar comandos do Windows Start Search Box como administrador, segurando Shift + Ctrl e pressionando Enter. Leia mais sobre isso