Controle de Tarefas no shell – comandos bg, fg, jobs

Controle de Tarefas no Shell do Linux

O Controle de Tarefas é a habilidade do shell de interromper e retomar a execução de comandos, além de poder colocá-los no background para serem executados em segundo plano.

Já o programa em foreground (primeiro plano) é aquele que está vinculado ao terminal.

Quando um processo é colocado em background, criamos uma tarefa. Cada tarefa possui um número de identificação, contando a partir de 1 (não confundir com PID de processos).

Colocamos um processo em background para liberar o terminal de onde ele foi iniciado, assim podemos continuar a usar o terminal para executar outros comandos enquanto o processo em segundo plano ainda é executado.

Programas não-interativos são colocados em background adicionando-se o símbolo & logo após o comando.

Exemplo:

gimp &

Para colocar esse processo em background, digite a combinação de teclas Ctrl+Z (que equivale ao envio do sinal TSTP, número 20), e em seguida digite o comando bg para reiniciar a tarefa em background.

Para colocar a tarefa novamente em foreground, digite o comando fg.

Exemplo:

vi /home/fabio/arq1

Ctrl+Z

bg

#Agora a tarefa está em background. Visualize a tarefa com o comando ps, e use o terminal para digitar outros comandos. Para voltar a tarefa ao foreground use então o comando fg:

fg

Comando jobs

Lista as tarefas ativas.

Sintaxe:

jobs [opções]

Opções comuns:

-l  Lista também os PIDs.

Comando bg

Coloca a tarefa especificada em background (equivale a iniciar o programa com &). Se a tarefa não for especificada, será usada a tarefa atual do shell. A tarefa deve estar pausada antes (Ctrl+Z).

Sintaxe:

bg [tarefa]

Comando fg

Coloca a tarefa especificada em foreground, transformando-a na tarefa atual. Se a tarefa não for especificada,s erá usada a tarefa atual do shell.

Sintaxe

fg [tarefa]

Exemplo

Vamos a um exemplo completo. Siga os passos a seguir para entender o funcionamento dos comandos bg, fg e jobs:

#Abrir vi e colocá-lo em background:
vi teste
Ctrl+Z|
bg
# Verificar jobs
jobs
#Abrir gimp em background:
gimp &
#Verificar jobs:
jobs
#Pausar gimp com sinal TSTP:
ps
kill -20 [PID do gimp]
#verificar jobs novamente
jobs
#Trazer processos ao foreground e finalizá-los (fechar normalmente):
fg [tarefa]

Muito bem! Assista agora a um vídeo explicativo sobre o assunto:

Sobre Fábio dos Reis (1090 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Astronomia, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*