Eu tolamente comecei um trabalho que acabou sendo tão grande e ocupado que congelou tudo. Eu gostaria de poder digitar um comando kill ou usar xkill, mas o sistema não responde, além da troca audível. No Windows, Ctrl-Alt-Del ajuda nessas situações; o Linux tem uma maneira de entrar em um sistema sobrecarregado?
Acabei de ver este e não pude deixar de compartilhar:
Ctrl+ Alt+ F4abre uma janela de console, onde você pode fazer login e matar coisas conforme necessário ou reiniciar o sistema. Use Ctrl+ Alt+ F2ou Ctrl+ Alt+ F1para voltar.
Em alguns casos, você pode reiniciar a sessão do gnome pressionando Alt+ F2e Rna janela que se abre. Isso deve deixar todos os programas em execução, mas o próprio gnome será reiniciado, portanto, se o problema estiver no gnome, isso pode ajudar.
Se o acima não ajudar, você pode fazer uma reinicialização a quente, pressionando a seguinte sequência de teclas:
Mantendo pressionadas as teclas Alte , pressione sequencialmente (uma a uma) as teclas:Print Screen
R E I S U B
Isso sincronizará e desmontará o sistema de arquivos e fará uma reinicialização segura. As chaves têm o seguinte significado:
Fonte
Por fim, se tudo mais falhar, mantenha o botão liga/desliga pressionado por alguns segundos para forçar uma reinicialização a frio ou retire o cabo de alimentação/bateria ;-).
Dependendo de sua instalação e ambiente, você pode matar ou reiniciar toda a sessão do XOrg com Ctrl- AltBackspace, mas algumas distribuições modernas estão desabilitando esse atalho por padrão, infelizmente.
Se o seu serviço de terminal virtual ainda estiver funcionando (normalmente
getty
ou algo semelhante), você poderá alternar para um console local alternativo com, por exemplo , LAlt- F1e efetuar login lá para emitirkill
comandos em um shell CLI se o sistema não estiver tão sobrecarregado que você não consegue nem logar.Se você estiver em uma rede e seu host tiver um daemon de shell seguro em execução, também poderá fazer login
ssh
para encerrar seus processos dessa maneira.Para o caso específico de troca, o que você quer fazer é invocar o assassino sem memória.
Isso pode ser feito com a combinação de teclas SysRqAlt + SysRq+ F. Ele interromperá o processo que está alocando mais RAM.
No entanto, a combinação de teclas é desativada por padrão em muitos sistemas, como o Ubuntu, porque pode potencialmente permitir contornar o bloqueio de tela. Ele pode ser ativado editando /etc/sysctl.d/10-magic-sysrq.conf .
Você pode fazer com que seu daemon init invoque qualquer programa (previamente configurado) de sua escolha pressionando Alt+ ↑em um console, o que enviará SIGWINCH para o processo 1. O teclado não deve estar em modo bruto, o que significa que não funcionará em uma sessão X sem pressionar Alt+ SysRq+ Rprimeiro (o que funcionará assumindo que a chave mágica SysRq foi habilitada).
Em um sistema baseado em systemd, a ação a ser executada é configurada definindo uma unidade chamada
kbrequest.target
; vejasystemd.special(7)
.No sysvinit, isso é configurado por uma
/etc/inittab
entrada que começa com::kbrequest:
; vejainittab(5)
.Outros sistemas de inicialização podem ter maneiras diferentes de configurar como reagem a essa combinação de teclas.
Estou um pouco surpreso que ninguém tenha mencionado o problema, em vez da correção. O problema é que sua máquina não deve (idealmente) não responder quando estiver sob pressão de memória. Este é um problema com a atual estratégia de troca, e surgiu em discussões do kernel anteriormente, como o "elefante na sala".
Existem "correções" no espaço do usuário que ajudam a mitigar o problema. Eu recomendo algo como earlyoom , que matará os processos antes que você fique sem memória ram, evitando o problema de troca em primeiro lugar.