Outra característica de operação bastante útil está relacionada ao caracter &. Lembre-se que o Linux, sendo um sabor de UNIX, é multiusuário e multitarefa. Isso significa que vários usuários podem estar usando o mesmo computador e executando mais de uma tarefa ao mesmo tempo, com os recursos compartilhados. Assim, se desejássemos colocar um determinado programa para ser executado em segundo plano, anexaríamos o caracter & depois do comando. Imagine que um programa seu chamado chuva levará dias executando e você não quer esperar que ele termine ou precisa continuar trabalhando. Bastaria executá-lo como
$ chuva &
[1] 925
e o shell o colocará em segundo plano, informando a ordem dentre os
seus processos ([1]) e a ordem geral do processo (925). O
processamento em segundo plano é um recurso poderoso quando bem utilizado,
permitindo que preencha-se o tempo ocioso dos computadores, entretanto lembre-se
que se o programa não terminar por si próprio ficará rodando até que seja
explicitamente morto, como no caso de uma reinicialização ou através do comando
kill
. Uma maneira
alternativa de colocar um programa já iniciado em segundo plano é através da
seqüência de teclas
+
, ou
$ chuva
+
Suspended
$ bg
[1] chuva &
pois quando
+
é pressionado o programa é suspenso
até que a ordem bg (de background ou segundo plano) faz com que sua
execução continue em segundo plano, exatamente de onde tinha parado quando o
shell suspendeu-o, sem nenhuma alteração de seus dados ou parâmetros.
Outra utilidade deste recurso consiste em suspender um aplicativo, realizar outra tarefa e depois continuar executando-o. No exemplo anterior
$ chuva
+
Suspended
$ sol
sol: Command not found.
$ fg
chuva
aqui a ordem fg serve para recolocar o último aplicativo que foi para segundo plano (bg) novamente em primeiro plano (fg de foreground). Se há vários processos em segundo plano, é possível identificá-los antecedendo o número do processo por %, isto é fg %1, neste caso.
leon 2008-08-19