bg
O comando
bg permite que um programa rodando em primeiro plano ou parado, rode em segundo plano (background), liberando o shell para outras atividades. Existem 3 maneiras diferentes de colocar um programa em background, veja os exemplos:
Inicie o
vi e depois pressione as teclas Ctrl+Z, o vi é interrompido e colocado em segundo plano.
# vi
[1]+ Stopped vi
Agora faça o seguinte:
# top &
[2] 1130
O caracter "&" colocou o
top para ser executado em segundo plano, vamos ao último exemplo:
Vamos executar a man page do comando du:
# man du
Agora interrompa a sua execução pressionando as teclas Ctrl+Z:
# man du
[3]+ Stopped man du
Agora use o comando
bg da seguinte maneira:
# bg 3
bg 3
[3]+ man du &
Mas por que colocar os processos em segundo plano?
Imagine que você esteja consultando uma man page de um determinado comando e deseja utilizar uma de suas opções, muitos sairiam da man page ou abririam outro terminal, felizmente não precisamos fazer isso, usando as opções para colocar as tarefas em segundo plano faremos tudo no mesmo terminal. Ou seja, o
Linux lhe oferece a oportunidade de executar outros processos sem que você tenha de parar o que estava fazendo.
O processo foi colocado em background, agora vamos visualizar estes processos para colocarmos eles para rodarem em primeiro plano.
jobs
O comando
jobs mostra os processos que estão parados ou rodando em segundo plano.
Vamos listar os processos que estão em segundo plano:
# jobs -l
[1] 1129 Parado vi
[2]- 1130 Parado (saída tty) top
[3]+ 1192 Parado (saída tty) man du
Observe a saída do comando, foram listados os números dos processos, os PIDs e o estdos dos processos. Agora com essa informação vamos colocar os processos em segundo plano para rodar em primeiro plano.
fg
O comando
fg permite que um programa rodando ou parado em segundo plano rode em primeiro plano.
Podemos colocar os programas que estão sendo executados em segundo plano para rodar em primeiro usando o nome do programa que queremos rodar ou o número da tarefa que ele representa no comando jobs. Neste exemplo vamos startar o
vi, o seu número de tarefa é 1, veja os exemplos:
# fg vi
ou
# fg 1
Observe que o
vi agora está rodando em primeiro plano ou em foreground, podemos fazer isso com todos os outros processos que estão em segundo plano ou background.