Carregando
0x150Lição 22 de 28

Assuma o controle dos processos

Suspenda, retome e encerre jobs, e cace um processo descontrolado.

22 min Questionário com 5 perguntas 1 exercício de código
Ao final desta lição, você saberá
  • Mover jobs entre o primeiro e o segundo plano
  • Parar um job com Ctrl-C, Ctrl-Z e kill, e explicar a diferença
  • Encontrar processos com ps e escolher o sinal certo

Um comando longo está segurando o seu terminal, e você precisa do prompt de volta sem perder o trabalho. O shell consegue fazer malabarismo com vários jobs ao mesmo tempo, desde que você saiba movê-los.

Primeiro plano, segundo plano e parado

Você digitaO que acontece
command &Inicia em segundo plano.
Ctrl-CEnvia SIGINT, que normalmente encerra o job em primeiro plano.
Ctrl-ZEnvia SIGTSTP, que o pausa. Ele não some.
jobsLista os seus jobs.
bgRetoma um job parado em segundo plano.
fgTraz um job de volta ao primeiro plano.
kill %1Envia um sinal ao job número 1.

Experimente

Até 15 XP

Faça malabarismo com os seus jobs

Pressione os botões para rodar comandos e teclas, e veja os jobs se moverem entre os dois painéis.

  1. Inicie `sleep 300` e veja que ele toma conta do seu terminal.
  2. Pause-o sem encerrá-lo.
  3. Deixe-o continuar em segundo plano.
  4. Traga-o de volta ao primeiro plano.
  5. Pare-o de vez.
  6. Inicie `backup.sh &` direto em segundo plano.
Primeiro plano$ _
Segundo planoNenhum job.

Seu prompt está livre. Inicie alguma coisa.

Encontrando processos e enviando sinais

O ps aux lista todos os processos, e o top ou o htop os mostram ao vivo. Para encerrar um, o kill envia um sinal ao PID dele:

  • kill PID envia SIGTERM, um pedido educado. O programa pode salvar o trabalho e fazer a limpeza. Tente este primeiro.
  • kill -9 PID envia SIGKILL, que não pode ser capturado. O processo simplesmente para, sem limpeza, então pode deixar arquivos corrompidos ou travas velhas. Use por último.

Um processo que sobrevive a um terminal fechado precisa de nohup command &, ou, melhor ainda, do tmux, que a próxima aula aborda.

Experimente

Até 15 XP

Pare o descontrolado

O servidor da estação ficou lentíssimo. O ps mostra o que está rodando, com o uso de CPU e memória.

Missão 1 de 2

Encontre o culpado

Hopper: “Algo está devorando a CPU. Que PID?”

Shell simulado. Tente ls, ou digite help para ver os comandos.

Seta para cima: histórico. Tab: completar. Ctrl-L: limpar. Ctrl-C: cancelar.
  1. Encontre o culpado
  2. Pare-o, e nada mais

Principais conclusões

  • O Ctrl-C encerra um job, e o Ctrl-Z só o pausa.

  • O bg e o fg movem os jobs.

  • Tente o kill primeiro, e use o kill -9 por último.

Quiz da aula

5 perguntas · aprovação com 4 acertos · até 50 XP

Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.

Pratique: escreva código em scripts Bash

Escreva um script no editor e execute-o de verdade com entradas de exemplo. Cada execução ganha um sandbox Linux novo com Bash 5.2 e as ferramentas GNU no Wandbox, um serviço público gratuito, então experimente à vontade, até com rm. Seu script e a entrada de teste são enviados para lá.

Exercício 1

Um desligamento educado

+25 XP

O código inicial inicia um job em segundo plano que trata o SIGTERM. Mande para ele um SIGTERM com kill, espere ele terminar e depois imprima job exited with status N, usando o status de saída do job.

  • Deixa o job fazer a limpeza
script.sh
Carregando editor…

Seu script roda com Bash 5.2 e ferramentas GNU no Wandbox, um serviço público gratuito, em um sandbox novo a cada execução. Seu script e a entrada de teste são enviados a esse serviço.

Dúvidas sobre esta lição

Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.

Carregando publicações…