我对 Ubuntu 的一个问题是,当我的 PC 超载时,我的 Ubuntu 系统挂起,我试图通过手动打开 CD-ROM 驱动器来强制中断并访问系统监视器以关闭某些任务来让它响应。
在 Windows 中,当这种情况发生时,我通常可以通过按Ctrl++切换到任务管理器来逃避它,这通常Alt会让Del我摆脱挂起的情况。
所以,我想知道:我可以用 Ubuntu 做些什么来摆脱挂起的情况(就像在 Windows 上按Ctrl++ Alt) ?Del
更新:
根据@Grumpy_Old_Man信息请求:
您使用的是什么处理器以及它的使用年限。早期的 Ryzen CPU 存在一个已知问题,它在低负载下挂起。 bugzilla.kernel.org/show_bug.cgi?id=196683
我的 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:
还有我的 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
侵入性最小的选项是使用Ctrl++Alt切换F3到控制台。
在控制台中,您可以使用您通常使用的工具(例如
top
、htop
、free
)或通过/proc
和/sysfs
文件系统进行探索来调查正在发生的事情。一旦您的调查确定了罪魁祸首,您就可以采取任何您需要的行动来纠正这种情况。例如,如果您有一个失控的进程,您可以尝试
SIGTERM
使用kill -s TERM <PID>
. 如果这不起作用,您可以更加激进并SIGKILL
使用kill -s KILL <PID>
.如果您设置了 SSH 服务器,您还可以通过 SSH 远程登录。但是请注意,如果您的系统出现问题,SSH 可能无法正常工作,例如因为它无法获得足够的 CPU 时间或内存或网络套接字。
如果您设置了串行控制台,则可以通过串行终端登录。
如果您无法访问控制台,Linux 内核有一个名为“ Magic SysRqKey ”的功能。
魔术SysRq键是一种在几乎所有情况下都能引起内核注意的方法(唯一不起作用的主要情况是内核恐慌,这是有道理的:内核已经崩溃,它不能做任何进一步的工作) .
SysRq您可以通过按住Alt+SysRq并键入一系列全为单个字母的命令来访问 Magic Key 的功能。
如果您没有单独的SysRq密钥,它通常是PrtScr密钥的替代模式,即使它没有标记。如果您也没有,则必须在键盘或笔记本电脑的手册中查找它。
请注意,这些键基于它们在美国英语 QWERTY 键盘上的扫描码。换句话说,Linux 不知道你的按键上印的是什么字母,它只关心键盘上按键的位置。如果您有不同的键盘布局,则需要在与美国英语 QWERTY 布局相同的位置使用按键。
一种常见的命令序列是:
SIGTERM
向除 PID 1 (init
) 之外的所有进程发送信号。这将很好地要求所有进程自行关闭。SIGKILL
向除 PID 1 (init
) 之外的所有进程发送信号。这不会很好地要求在上一步之后仍在运行的所有进程立即自杀。sync
所有当前挂载的文件系统。这会将页面缓存和块缓存刷新到磁盘。umount
所有当前挂载的文件系统,或者更确切地说,以只读方式重新挂载所有当前挂载的文件系统。reboot
或者o:shutdown
该序列可以写为 REISUB。一个常见的助记词是“即使系统完全崩溃也要重新启动”。
您可以使用您喜欢的组合键(在本例中为Ctrl+ Alt+ Del)设置在 Ubuntu 中打开系统监视器的快捷方式。
您可以在“设置”中为自定义组合键设置自定义快捷键(顺便说一下,这些步骤适用于 Ubuntu 18.04):
Open System Monitor
)。gnome-system-monitor
)。您可以通过按分配给快捷方式的组合键 ( Ctrl++ Alt)来试用快捷方式。Del
按住SysRq(即) Alt,同时缓慢键入“REISUB”将让您安全地重新启动。“REISUO”将关闭而不是重新启动。Print Screen key
如果您知道没有响应的程序,请转到 TTY shell ++ CTRL,然后使用以下脚本杀死该程序。复制代码并将其保存为ALTF4
exterminate.sh
/bin
然后使脚本可执行
并以超级用户身份执行。小心你传递给脚本的参数,因为你无意中可能最终造成比你预想的更多的损害。
例如,如果故障程序是
transmission
会成功的。
对我来说,这通常意味着内存不足并开始大量交换。
在这种情况下可以提供帮助的是Alt++SysRq组合F,它命令系统杀死占用最多内存的任务。
如本问题所述,您必须先启用SysRq密钥。还有一些笔记本电脑需要同时按住键。Fn
按 ctrl+alt+f3 进入 TTY。从那里开始,它将像一个完整的终端体验。键入 reboot/poweroff 并按回车,它应该可以解决您的问题。另一种解决方案是按 ctrl+alt+f1 锁定您的用户并再次输入密码以进入 Ubuntu。
您也许可以使用Ctrl++杀死X 服务器Alt。Backspace