Um dos meus problemas com o Ubuntu é que, quando meu PC sobrecarrega, meu sistema Ubuntu trava e tento fazê-lo responder abrindo a unidade de CD-ROM manualmente para forçar uma interrupção e obter acesso ao monitor do sistema para fechar algumas tarefas.
No Windows, quando essa situação acontece, geralmente consigo escapar pressionando Ctrl+ Alt+ Delpara alternar para o Gerenciador de Tarefas, o que geralmente me tira de uma situação de travamento.
Então, eu gostaria de saber: existe algo que eu possa fazer com o Ubuntu para escapar de uma situação de travamento (como pressionar Ctrl+ Alt+ Delno Windows)?
Atualizar:
De acordo com a solicitação de informações do @Grumpy_Old_Man :
Qual processador você está usando e quantos anos ele tem. Há um problema conhecido com as primeiras CPUs Ryzen, que travam sob carga baixa. bugzilla.kernel.org/show_bug.cgi?id=196683
Informações da minha CPU:
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz
stepping : 9
microcode : 0xca
cpu MHz : 3278.317
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips : 5808.00
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz
stepping : 9
microcode : 0xca
cpu MHz : 3274.188
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 2
apicid : 2
initial apicid : 2
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips : 5808.00
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz
stepping : 9
microcode : 0xca
cpu MHz : 3271.793
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips : 5808.00
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz
stepping : 9
microcode : 0xca
cpu MHz : 3285.540
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 2
apicid : 3
initial apicid : 3
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips : 5808.00
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
E minhas informações do Ubuntu:
hostnamectl
Static hostname: so-notebook
Icon name: computer-laptop
Chassis: laptop
Machine ID: 34a2eb65afa64d60a60ed02d972e884d
Boot ID: 9ee34ad4bff84b908e8719ab83029836
Operating System: Ubuntu 18.04.3 LTS
Kernel: Linux 5.0.0-37-generic
Architecture: x86-64
A opção menos invasiva é usar Ctrl+ Alt+ F3para alternar para um console.
A partir do console, você pode investigar o que está acontecendo usando as ferramentas que normalmente usaria, como
top
,htop
,free
ou spelunking através dos sistemas de arquivos/proc
e/sysfs
. Uma vez que sua investigação tenha determinado o culpado, você pode enviar o que for necessário para corrigir a situação.Por exemplo, se você tem um processo descontrolado, você pode tentar enviar o
SIGTERM
sinal usandokill -s TERM <PID>
. Se isso não funcionar, você pode ser mais agressivo e enviar oSIGKILL
sinal usandokill -s KILL <PID>
.Se você tiver um servidor SSH configurado, também poderá fazer login remotamente via SSH. Observe, no entanto, que se algo em seu sistema estiver dando errado, o SSH pode não funcionar corretamente, por exemplo, porque não pode obter tempo de CPU, memória ou soquetes de rede suficientes.
Se você tiver um console serial configurado, poderá efetuar login via terminal serial.
Se você não conseguir acessar um console, o Kernel Linux possui um recurso chamado " Magic SysRqKey ".
A Magic SysRqKey é uma maneira de chamar a atenção do kernel em quase todas as circunstâncias (a única situação importante em que não funciona é em um kernel panic, o que faz sentido: o kernel travou, não pode fazer mais nenhum trabalho) .
Você pode acessar a funcionalidade da Magic SysRqKey pressionando Alt+ SysRqe digitando uma série de comandos que são todos letras únicas.
Se você não tiver uma SysRqchave separada, geralmente é um modo alternativo da PrtScrchave, mesmo que não esteja rotulada. Se você também não tiver isso, terá que procurar no manual do seu teclado ou do seu laptop.
Observe que as teclas são baseadas em seus scancodes em um teclado QWERTY em inglês dos EUA. Em outras palavras, o Linux não sabe qual letra está impressa na sua tecla, ele só se preocupa com a localização da tecla no teclado. Se você tiver um layout de teclado diferente, precisará usar as teclas na mesma posição como se tivesse um layout QWERTY em inglês dos EUA.
Uma sequência de comandos comum é:
SIGTERM
sinal para todos os processos exceto PID 1 (init
). Isso solicitará que todos os processos se desliguem.SIGKILL
sinal para todos os processos exceto PID 1 (init
). Isso não pedirá muito bem a todos os processos que ainda estão em execução após a etapa anterior para cometer suicídio imediato.sync
todos os sistemas de arquivos atualmente montados. Isso liberará o cache da página e bloqueará o cache no disco.umount
todos os sistemas de arquivos montados atualmente, ou melhor, remontar todos os sistemas de arquivos montados atualmente somente leitura.reboot
ou alternativamente o:shutdown
A sequência pode ser escrita como REISUB. Um mnemônico comum para lembrar é "Reinicializar mesmo se o sistema estiver totalmente quebrado".
Você pode definir um atalho para abrir o monitor do sistema no Ubuntu com a combinação de teclas que desejar (neste caso, Ctrl+ Alt+ Del).
Você pode definir atalhos personalizados para combinação de teclas personalizadas nas Configurações (a propósito, essas etapas são para o Ubuntu 18.04):
Open System Monitor
).gnome-system-monitor
).Você pode experimentar o atalho pressionando a combinação de teclas ( Ctrl+ Alt+ Del) atribuída ao atalho.
Manter pressionado Alte SysRq (que é o Print Screen key) enquanto digita lentamente "REISUB" fará com que você reinicie com segurança. "REISUO" fará um desligamento em vez de uma reinicialização.
Se você conhece o programa que não está respondendo, vá para um shell TTY CTRL+ ALT+ F4e use o script a seguir para matar esse programa. Copie o código e salve-o como
exterminate.sh
em/bin
em seguida, torne o script executável por
e execute-o como superusuário. Tenha cuidado com o argumento que você passa para o script, pois inadvertidamente pode acabar causando mais danos do que esperava.
por exemplo, se, por exemplo, o programa com defeito for
transmission
faria o truque.
Para mim, isso geralmente significa ficar sem RAM e começar a trocar muito.
O que pode ajudar nessa situação é a combinação Alt+ SysRq+ F, que comanda o sistema para matar a tarefa que ocupa mais memória.
Você terá que habilitar a SysRqchave primeiro, conforme explicado nesta pergunta . Além disso, alguns laptops exigem que você mantenha pressionada a Fntecla simultaneamente.
Pressione ctrl+alt+f3 para entrar no TTY. A partir daí, será como uma experiência de terminal completa. Digite reboot/poweroff e pressione enter e isso deve resolver seu problema. Outra solução seria pressionar ctrl+alt+f1 para bloquear seu usuário e digitar a senha novamente para entrar no Ubuntu.
Você pode usar Ctrl+ Alt+ Backspacepara matar o servidor X.