Mateus Müller

O carinha do Linux

01 out. 2017

LPIC-1: Como Gerenciar Jobs em Background e Foreground no Linux

Pessoal, no artigo de hoje eu vou mostrar como gerenciar jobs em background e foreground no Linux. Lembrando que isso é extremamente necessário para a prova da LPIC-1.

Qual a diferença entre foreground e background?

Como o próprio nome já diz, background é justamente o que roda por trás, ou seja, não fica aparecendo no nosso terminal. Quando abrimos o Google Chrome, por exemplo, ele cria processos em background que só vemos se executarmos algum comando que gerencia esses processos.

Já o foreground é tudo que aparece no nosso terminal, conseguimos ver o processo correndo e podemos pará-lo no método normal com CTRL+C.

Qual a diferença entre jobs e processos?

Um job poderia ser considerado a mesma coisa que um processo, podemos gerenciá-lo da mesma forma. A melhor definição seria que um conjunto de processos faz um job. E os jobs também são mais curtos, ou seja, não ficam sempre ali ociosos rodando na memória. Se rodarmos qualquer comando, como por exemplo um find, ele será um job e logo vai terminar. O job sempre é em background.

Gerenciar Jobs em Background e Foreground

Para iniciarmos um programa em foreground, basta digitar o nome do comando:

$ gedit
Dica de LPIC-1 - Como Gerenciar Jobs em Background e Foreground no Linux
Dica de LPIC-1 -- Como Gerenciar Jobs em Background e Foreground no Linux

Ele abriu meu gedit normalmente, porém, meu terminal ficou trancado, não posso fazer nada. Se pressionar CTRL+C ele para o gedit e fecha.

Para contornar isso, podemos usar o caractere & que define que o processo irá iniciar em background e não em foreground:

Dica de LPIC-1 - Como Gerenciar Jobs em Background e Foreground no Linux
Dica de LPIC-1 -- Como Gerenciar Jobs em Background e Foreground no Linux

Veja que ele possui o PID 13793 e é o job de número 1.

Para lista os jobs podemos rodar o comando:

$ jobs
Dica de LPIC-1 - Como Gerenciar Jobs em Background e Foreground no Linux
Dica de LPIC-1 -- Como Gerenciar Jobs em Background e Foreground no Linux

O ID do job do gedit é 1:

Se quisermos trazer de volta este job para foreground, podemos usar o % junto com o número do job.

$ %1
Dica de LPIC-1 - Como Gerenciar Jobs em Background e Foreground no Linux
Dica de LPIC-1 -- Como Gerenciar Jobs em Background e Foreground no Linux

Agora se pressionar CTRL+C o processo vai parar.

Vamos imaginar também uma outra situação, onde que você iniciou algo mas quer colocá-la em background:

$ gedit

Agora vamos pausar o processo com CTRL+Z:

Dica de LPIC-1 - Como Gerenciar Jobs em Background e Foreground no Linux
Dica de LPIC-1 -- Como Gerenciar Jobs em Background e Foreground no Linux

Você vai notar que o programa não vai fechar, apenas não irá responder se você clicar. Estará totalmente congelado.

Agora para colocar em background, basta digitar:

$ bg
Dica de LPIC-1 - Como Gerenciar Jobs em Background e Foreground no Linux
Dica de LPIC-1 -- Como Gerenciar Jobs em Background e Foreground no Linux

E o processo voltou para background.

Da mesma forma que o bg foi usado, podemos usar o fg para trazer ele de volta a foreground:

$ %1

Pressione CTRL+Z para pausá-lo novamente:

$ fg

Bom pessoal, este foi o artigo de hoje. Este conteúdo é importante para a prova da certificação LPIC-1, então pratiquem e leiam os manuais. Abraço!

Se tiver alguma dúvida ou sugestão de conteúdo, por favor, comente!

Comentários Disqus