如何摆脱挂起的 Ubuntu 操作系统?

如何摆脱挂起的 Ubuntu 操作系统?

我使用 Ubuntu 时遇到的一个问题是,当我的 PC 过载时,我的 Ubuntu 系统会挂起,我尝试通过手动打开 CD-ROM 驱动器来强制中断并访问系统监视器来关闭某些任务,以使其做出响应。

Ctrl在 Windows 中,当这种情况发生时,我通常可以通过按+ Alt+切换到任务管理器来退出Del,这通常可以帮助我摆脱挂起的情况。

所以,我想知道:我可以用 Ubuntu 做些什么来摆脱挂起的情况(就像在 Windows 上按++Ctrl一样)?AltDel

更新:

根据@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

答案1

侵入性最小的选项是使用Ctrl++切换到控制台。AltF3

在控制台中,您可以使用通常使用的工具(例如、、或浏览和文件系统)调查正在发生的事情。top一旦您的调查确定了罪魁祸首,您就可以采取任何必要的措施来纠正这种情况。htopfree/proc/sysfs

例如,如果你有一个失控的进程,你可以尝试使用 向它发送信号SIGTERMkill -s TERM <PID>如果这不起作用,你可以更积极一点,SIGKILL使用 向它发送信号kill -s KILL <PID>

如果您已设置 SSH 服务器,则还可以通过 SSH 远程登录。但请注意,如果您的系统出现问题,SSH 可能无法正常工作,例如,因为它无法获得足够的 CPU 时间、内存或网络套接字。

如果您设置了串行控制台,则可以通过串行终端登录。

如果你无法进入控制台,Linux 内核有一个功能叫做“魔法SysRq钥匙“。

魔法SysRq钥匙是一种在几乎所有情况下引起内核注意的方法(它不起作用的唯一主要情况是内核恐慌,这是有道理的:内核崩溃了,无法再做任何工作)。

SysRq您可以通过按住Alt+SysRq并输入一系列全是单个字母的命令来访问 Magic Key 的功能。

如果您没有单独的SysRq按键,即使没有标签,它通常是按键的替代模式PrtScr。如果您也没有,则必须在键盘或笔记本电脑的手册中查找。

请注意,密钥基于其扫描码在美国英语 QWERTY 键盘上。换句话说,Linux 不知道你的按键上印着什么字母,它只关心地点键盘上的按键。如果您的键盘布局不同,则需要使用按键在同一位置就像您拥有美国英语 QWERTY 布局一样。

一个常见的命令序列是:

  • r:将键盘从原始模式切换到 XLATE 模式(例如,如果您当前处于 GUI 中,则键盘很可能已切换到原始模式,并且在控制台中将毫无用处)。
  • eSIGTERM向除 PID 1 之外的所有进程发送信号(init)。这将很好地要求所有进程自行关闭。
  • …等待一会儿,让所有进程有机会有序关闭。
  • iSIGKILL向除 PID 1 之外的所有进程发送信号(init)。这将非常不是要求上一步之后仍在运行的所有进程立即自杀。
  • … 稍等一会
  • ssync所有当前已安装的文件系统。这将刷新页面缓存和块缓存到磁盘。
  • … 稍等片刻,让 Linux 内核将所有缓存刷新到存储设备,让存储设备将其所有内部缓存刷新到介质;如果您仍有旧式磁盘活动 LED,请等到活动停止
  • uumount所有当前已安装的文件系统,或者更确切地说,以只读方式重新安装所有当前已安装的文件系统。
  • … 稍等一会
  • breboot或者oshutdown

该序列可以写成 REISUB。常用的助记符是“即使系统彻底损坏也要重新启动”。

答案2

您可以使用您喜欢的组合键(在本例中为Ctrl+ Alt+ Del)设置在 Ubuntu 中打开系统监视器的快捷方式。

您可以在设置中设置自定义组合键的自定义快捷方式(顺便说一下,这些步骤适用于 Ubuntu 18.04):

  1. 前往设置。
  2. 搜索快捷方式(只需开始输入,它就会搜索它)。
  3. 现在,按下键盘选项并向下滚动到最后。
  4. 单击 + 号,将会出现一个对话框。
  5. 键入快捷方式的名称,可以是任何您想要的名称(在这种情况下,您可以写Open System Monitor)。
  6. 键入命令的名称(在本例中为gnome-system-monitor)。
  7. 点击设置快捷方式` 选项并按下用于打开系统监视器的组合键(在本例中,单击该选项后同时按 和Ctrl) 。AltDel
  8. 最后,单击“添加”,即可创建一个自定义快捷方式。

Ctrl您可以按下分配给快捷方式的组合键( ++ Alt)来尝试该快捷方式Del

答案3

按住Alt系统请求(即Print Screen key)同时缓慢输入“REISUB”将让您安全重新启动。“REISUO”将关闭而不是重新启动。

答案4

当我的电脑超载时,我的 Ubuntu 系统就会挂起

对我来说,这通常意味着内存耗尽并开始大量交换。

在这种情况下,Alt++组合可以提供帮助,它命令系统终止占用最多内存的任务。SysRqF

您必须SysRq先启用密钥,如下所述在这个问题中. 另外,有些笔记本电脑需要同时按住Fn键。

相关内容