Introdução
Neste laboratório, você aprenderá como gerenciar tarefas em segundo plano (background jobs) no Linux usando vários comandos. Você descobrirá como executar processos em segundo plano, monitorar seu status e controlá-los. Este conhecimento é crucial para a multitarefa eficiente em um ambiente Linux, permitindo que você execute múltiplas tarefas simultaneamente sem ocupar seu terminal.
Conquistas
Ao final deste laboratório, você será capaz de:
- Executar comandos em segundo plano usando o operador
& - Listar e monitorar tarefas em segundo plano usando o comando
jobs - Trazer tarefas em segundo plano para o primeiro plano usando o comando
fg - Parar tarefas em segundo plano usando o comando
kill - Compreender a natureza específica do terminal das tarefas em segundo plano
Executando um Comando em Segundo Plano
Vamos começar executando um comando simples em segundo plano.
Abra seu terminal. Você deve estar no diretório
/home/labex/project. Caso contrário, você pode mudar para este diretório digitando:cd /home/labex/projectUsaremos o comando
sleeppara simular um processo de longa duração. Execute o seguinte comando:sleep 600 &O comando
sleeppausa por um número especificado de segundos (neste caso, 600 segundos ou 10 minutos). O&no final diz ao Linux para executar este comando em segundo plano.Após executar este comando, você verá uma saída semelhante a esta:
[1] 1234Esta saída mostra duas informações importantes:
[1]é o número do job (tarefa). Isso é usado para se referir a esta tarefa específica em segundo plano.1234é o ID do processo (PID). Este é um identificador único para o processo em execução.
Você notará que você recebe imediatamente o seu prompt de comando de volta. Isso ocorre porque o processo está sendo executado em segundo plano, permitindo que você continue usando seu terminal.
Agora, vamos verificar o status da nossa tarefa em segundo plano:
jobsEste comando lista todas as tarefas em segundo plano atuais. Você deve ver uma saída como esta:
[1]+ Running sleep 600 &Isso informa que a tarefa número 1 está em execução, e é o comando
sleep 600que acabamos de iniciar.Nota Importante: As tarefas em segundo plano são específicas da sessão do terminal em que foram iniciadas. Se você abrir uma nova janela ou aba do terminal, executar
jobslá não mostrará as tarefas em segundo plano do seu terminal original. Este é um conceito chave para entender como as tarefas em segundo plano funcionam no Linux.
Executando Múltiplas Tarefas em Segundo Plano
Agora que executamos uma tarefa em segundo plano, vamos tentar executar várias tarefas simultaneamente. Usaremos uma mistura de comandos diferentes para demonstrar a versatilidade das tarefas em segundo plano.
Vamos iniciar mais algumas tarefas em segundo plano. Digite estes comandos um após o outro:
ping -c 100 google.com > ping_results.txt & find /home -name "*.log" > log_files.txt & sleep 1200 &Cada um desses comandos iniciará uma nova tarefa em segundo plano. Você verá um número de tarefa e PID para cada um.
Agora, vamos verificar o status de todas as nossas tarefas em segundo plano:
jobsVocê deve ver uma saída listando todas as quatro tarefas (incluindo a do Passo 1):
[1] Running sleep 600 & [2] Running ping -c 100 google.com > ping_results.txt & [3]- Running find /home -name "*.log" > log_files.txt & [4]+ Running sleep 1200 &O
+ao lado da tarefa 4 indica que esta é a tarefa em segundo plano iniciada mais recentemente. O-ao lado da tarefa 3 indica que esta se tornaria a tarefa atual se a tarefa 4 terminasse.Observe como você pode iniciar várias tarefas em segundo plano rapidamente, e seu terminal permanece responsivo para outros comandos.
Trazendo uma Tarefa em Segundo Plano para o Primeiro Plano
Às vezes, você pode querer trazer uma tarefa em segundo plano para o primeiro plano, seja para interagir com ela ou para ver sua saída. Vamos aprender como fazer isso.
Primeiro, liste suas tarefas atuais:
jobsIsso atualiza sua visão do que está sendo executado atualmente em segundo plano.
Vamos trazer uma das tarefas de longa duração para o primeiro plano. Escolha um número de tarefa da lista (digamos que seja o número 3, mas use qualquer número que corresponda a uma tarefa que ainda esteja em execução em sua lista). Para trazê-la para o primeiro plano, use o comando
fgseguido pelo número da tarefa:fg %3O
%3se refere ao número da tarefa. O símbolo%informa ao shell que você está se referindo a um número de tarefa, não a um ID de processo.Após executar este comando, você verá o comando sendo executado no primeiro plano, e seu terminal ficará "preso" até que ele seja concluído ou você o interrompa.
Para interromper a tarefa e recuperar o controle do seu terminal, pressione
Ctrl+C. Isso envia um sinal de interrupção para o processo atual em primeiro plano.Vamos verificar nossas tarefas novamente:
jobsVocê deve ver que a tarefa que você trouxe para o primeiro plano não está mais listada porque a interrompemos.
Parando uma Tarefa em Segundo Plano
Agora, vamos aprender como parar uma tarefa em segundo plano sem trazê-la para o primeiro plano.
Primeiro, liste suas tarefas atuais:
jobsIsso mostra quais tarefas ainda estão em execução.
Vamos parar uma das tarefas em segundo plano restantes. Escolha um número de tarefa da lista (digamos que seja o número 2, mas use qualquer número que corresponda a uma tarefa que ainda esteja em execução em sua lista). Para pará-la, usamos o comando
killseguido pelo número da tarefa:kill %2O
%2se refere ao número da tarefa que você escolheu. Novamente, o símbolo%indica que estamos nos referindo a um número de tarefa.O comando
killenvia um sinal de terminação para a tarefa especificada. Por padrão, ele envia um sinal que permite que o processo seja encerrado de forma graciosa.Verifique as tarefas novamente:
jobsVocê deve ver que a tarefa que você interrompeu não está mais listada. Isso confirma que ela foi terminada com sucesso.
Usando Tarefas em Segundo Plano com Outros Comandos
Agora que praticamos com vários comandos, vamos tentar usar tarefas em segundo plano com outro comando prático.
Usaremos o comando
tarpara criar um arquivo compactado do seu diretório home em segundo plano:tar -czf home_backup.tar.gz /home/labex &Este comando cria um arquivo tar compactado do seu diretório home.
Você verá um número de tarefa e PID, assim como com nossos comandos anteriores.
Verifique o status da tarefa:
jobsVocê deve ver o comando
tarlistado como uma tarefa em execução.Enquanto estiver em execução, você pode continuar a usar seu terminal para outras tarefas. Este é o poder das tarefas em segundo plano!
Depois de um tempo, verifique se o comando foi concluído:
jobsSe ele não estiver mais listado, foi finalizado.
Agora, vamos verificar se o arquivo foi criado:
ls -l home_backup.tar.gzIsso mostrará os detalhes do arquivo de arquivo se ele foi criado com sucesso.
Resumo
Neste laboratório, você aprendeu habilidades essenciais para gerenciar tarefas em segundo plano no Linux:
- Executar comandos em segundo plano usando o operador
& - Listar e monitorar tarefas em segundo plano com o comando
jobs - Trazer tarefas em segundo plano para o primeiro plano com
fg - Parar tarefas em segundo plano usando
kill - Aplicar esses conceitos a cenários práticos, como diagnósticos de rede, pesquisas de arquivos e criação de arquivos
Você também aprendeu um conceito importante: as tarefas em segundo plano são específicas para a sessão do terminal em que foram iniciadas. Isso significa que cada janela ou aba do terminal mantém seu próprio conjunto de tarefas em segundo plano.
Essas habilidades o ajudarão a realizar multitarefas de forma eficiente em um ambiente Linux, permitindo que você execute vários processos simultaneamente e os gerencie de forma eficaz. Lembre-se, as tarefas em segundo plano são particularmente úteis para tarefas de longa duração que não exigem interação constante, liberando seu terminal para outros trabalhos.



