Pesquisa de site

Como lidar com congelamentos de aplicativos/sistema operacional no Linux


Os sistemas operacionais baseados em Linux são considerados mais estáveis do que outros sistemas operacionais. Prova disso é o fato de que o Linux alimenta mais de 95% dos supercomputadores do mundo. No entanto, estabilidade e desempenho não significam que os sistemas Linux não sofram congelamentos de aplicativos ou sistemas operacionais.

Pode haver muitos tipos diferentes de congelamentos, como situações em que um ou mais aplicativos congelam, o mouse para de responder junto com os aplicativos e, finalmente, onde tudo (inclusive o teclado) congela. Neste artigo discutiremos detalhadamente as diversas soluções disponíveis para cada caso e em que ordem você deve aplicá-las.

Nota: Todas as soluções/técnicas mencionadas neste artigo foram testadas no Ubuntu (versão 16.04). Eles podem ou não funcionar em outras distribuições.

Congelamento de aplicativos

Quando um aplicativo congela, a primeira e mais óbvia etapa é fechá-lo clicando no botão Fechar (botão circular com 'x' dentro dele) localizado no canto superior esquerdo da janela do aplicativo. Normalmente, em caso de congelamento, ao fazer isso, uma pequena janela aparece informando que o aplicativo não está respondendo, dando a você a opção de encerrar o processo ou aguardar a resposta do aplicativo.

Você pode clicar no botão "Forçar encerramento" para se livrar do aplicativo. No entanto, se isso não funcionar, o próximo passo deve ser executar o comando xkill no terminal de linha de comando. (Você também pode criar um atalho de teclado para isso.) Assim que o comando for executado, o ponteiro do mouse se transformará em um X.

Agora, neste estado, clicar com o botão esquerdo do mouse em qualquer janela do aplicativo irá matá-lo.

Embora "xkill" seja uma excelente solução para se livrar de aplicativos congelados, você não pode usar essa técnica em processos/aplicativos que não possuem uma GUI. Não se preocupe, pois já temos algumas soluções comumente conhecidas, como enviar um sinal SIGINT para o aplicativo/processo pressionando "Ctrl + C" ou encerrar o processo usando o comando kill.

Quando o mouse também para de funcionar

E se o mouse também congelar? Nesse caso, a opção mais conveniente é pegar um terminal de linha de comando, que você pode iniciar pressionando "Alt + F2", digitando gnome-terminal e pressionando Enter.

Escusado será dizer que, uma vez na linha de comando, você pode facilmente encerrar um processo/aplicativo, independentemente de ser ou não baseado em GUI.

Se por algum motivo a solução acima não funcionar, você pode mudar para um terminal virtual pressionando “Alt + Ctrl + F1”. Uma vez lá, basta inserir seus dados de login e você terá acesso de linha de comando ao seu sistema. Quando terminar de eliminar os processos que não respondem, você pode voltar para a sessão da GUI (que é tecnicamente o console onde o servidor X está sendo executado) pressionando "Ctrl + Alt + F7". Alternativamente, se desejar, você também pode reiniciar a GUI a partir do console virtual executando o seguinte comando:

sudo service lightdm restart

Quando tudo congela

Infelizmente, há momentos em que tudo (incluindo o teclado) deixa de responder. Como você deve enfrentar esse cenário? A chave mágica SysRq vem em seu socorro aqui. Ao contrário do que o nome sugere, a chave mágica SysRq é na verdade uma combinação de teclas que permite conversar diretamente com o kernel, independentemente do estado em que seu sistema está atualmente, permitindo resolver congelamentos/travamentos onde nada parece estar respondendo.

Aqui estão as combinações de teclas das quais estamos falando:

  • Alt + SysReq + F: Esta combinação de teclas pede ao kernel para encerrar um processo (o mais caro) de cada vez.
  • Alt + SysReq + K: Esta combinação de teclas pede ao kernel para eliminar todos os aplicativos/processos de uma só vez.
  • Alt + SysReq + REISUB: Esta combinação de teclas solicita ao kernel que execute uma reinicialização limpa do sistema.

Veja como a terceira combinação de teclas (na lista acima) executa uma reinicialização limpa:

  • R: Mude para o modo XLATE
  • E: Envie SIGTERM para todos os processos, exceto init
  • I: Envie SIGKILL para todos os processos, exceto init
  • S: Sincronize todos os sistemas de arquivos montados
  • U: Remontar todos os sistemas de arquivos como somente leitura
  • B: Reinicializar

DICA: você pode lembrar a combinação REISUB como o inverso de BUSIER.

É claro que a combinação de teclas “Alt + SysReq + REISUB” é uma alternativa melhor do que reiniciar o sistema a frio.

Nota: para que a chave mágica SysRq funcione, certifique-se de que o parâmetro "kernel.sysrq" no arquivo "/etc/sysctl.d/10-magic-sysrq.conf" esteja definido como 1 .

Conclusão

Existem muitas técnicas que você pode usar para sair de situações de congelamento de aplicativos/sistema operacional no Ubuntu. O que vale a pena enfatizar aqui - e importante para você entender - é que essas técnicas existem para evitar que você execute uma reinicialização física ou ligue/desligue, o que idealmente deveria ser o último recurso na maioria dos casos.

Crédito da imagem: /home

Artigos relacionados