Assuma o controle dos processos
Suspenda, retome e encerre jobs, e cace um processo descontrolado.
- 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ê digita | O que acontece |
|---|---|
command & | Inicia em segundo plano. |
| Ctrl-C | Envia SIGINT, que normalmente encerra o job em primeiro plano. |
| Ctrl-Z | Envia SIGTSTP, que o pausa. Ele não some. |
jobs | Lista os seus jobs. |
bg | Retoma um job parado em segundo plano. |
fg | Traz um job de volta ao primeiro plano. |
kill %1 | Envia um sinal ao job número 1. |
Experimente
Até 15 XPFaç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.
- Inicie `sleep 300` e veja que ele toma conta do seu terminal.
- Pause-o sem encerrá-lo.
- Deixe-o continuar em segundo plano.
- Traga-o de volta ao primeiro plano.
- Pare-o de vez.
- Inicie `backup.sh &` direto em segundo plano.
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 PIDenvia SIGTERM, um pedido educado. O programa pode salvar o trabalho e fazer a limpeza. Tente este primeiro.kill -9 PIDenvia 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 XPPare 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.
- Encontre o culpado
- 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á.
Um desligamento educado
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
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…