web-dev-qa-db-ja.com

ハングしているUbuntu OSから脱出するにはどうすればよいですか?

Ubuntuに関する私の問題の1つは、PCが過負荷になると、Ubuntuシステムがハングし、CD-ROMドライブを手動で開いて割り込みを強制し、いくつかのタスクを閉じるためにシステムモニターにアクセスできるようにすることです。

Windowsでは、このような状況が発生した場合、通常は Ctrl+Alt+Del タスクマネージャーに切り替えると、通常はハングアップ状態から抜け出します。

だから、私は知りたい:ぶら下がっている状況を回避するためにUbuntuでできることはありますか(‌ Ctrl+Alt+Del Windowsの場合)?

更新:

@ Grumpy_Old_Man 情報リクエストに従って:

使用しているプロセッサーとその使用年数。初期のRyzen CPUには既知の問題があり、低負荷でハングします。 bugzilla.kernel.org/show_bug.cgi?id=19668

私の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

24
modern

Ubuntuでシステムモニターを開くショートカットを設定できます(この場合、 Ctrl+Alt+Del)。

設定でカスタムキーの組み合わせのカスタムショートカットを設定できます(ちなみに、これらの手順はUbuntu 18.04用です):

  1. 設定に移動します。
  2. ショートカットを検索します(入力を開始するだけで検索されます)。
  3. 次に、キーボードオプションを押して、最後までスクロールします。
  4. +記号をクリックすると、ダイアログが表示されます。
  5. ショートカットの名前を入力します。任意の名前を指定できます(この場合は、Open System Monitor)。
  6. コマンドの名前を入力します(この場合はgnome-system-monitor)。
  7. ショートカットの設定 `オプションをクリックし、システムモニターを開くために使用するキーの組み合わせを押します(この場合、 Ctrl、 Alt そして Del 同時にオプションをクリックした後)。
  8. 最後になりましたが、[追加]をクリックすると、カスタムショートカットが作成されます。

キーの組み合わせを押すことでショートカットを試すことができます(Ctrl+Alt+Del)ショートカットに割り当てた。

13
Sumagna Das

最も侵襲性の低いオプションは Ctrl+Alt+F3 コンソールに切り替えます。

コンソールから、tophtopfreeなどの通常使用するツール、または/procおよび/sysfsファイルシステム。調査が原因を特定したら、状況を修正するために必要なあらゆることを送信できます。

例えば。暴走したプロセスがある場合は、kill -s TERM <PID>を使用してSIGTERMシグナルを送信しようとすることができます。それがうまくいかない場合は、より積極的に、kill -s KILL <PID>を使用してSIGKILLシグナルを送信できます。

SSHサーバーを設定している場合は、SSH経由でリモートからログインすることもできます。ただし、システム上の何かが問題を起こしている場合、SSHは適切に機能しない可能性があることに注意してください。十分なCPU時間、メモリ、またはネットワークソケットを取得できないためです。

シリアルコンソールが設定されている場合は、シリアルターミナルからログインできます。

コンソールにアクセスできない場合、Linuxカーネルには " Magic SysRq キー "。

魔法 SysRq キーは、ほとんどすべての状況下でカーネルの注意を引く方法です(カーネルが機能しない唯一の主な状況は、カーネルパニックであり、これは理にかなっています。カーネルがクラッシュし、それ以上の作業はできません)。

マジックの機能にアクセスできます SysRq 長押しによるキー Alt+SysRq そして、すべて1文字の一連のコマンドを入力します。

別に持っていない場合 SysRq キー、それは通常の代替モードです PrtScr ラベルが付いていなくても、キー。それもない場合は、キーボードまたはラップトップのマニュアルで調べる必要があります。

キーは、米国英語のそれらのscancodesに基づいていることに注意してくださいQWERTYキーボード。つまり、Linuxはキーに印刷されている文字を認識しません。キーボードのキーのlocationのみに注意します。異なるキーボードレイアウトを使用している場合は、キーを使用する必要があります同じ位置に米国英語QWERTYレイアウト。

一般的なコマンドシーケンスの1つは次のとおりです。

  • r:キーボードをrawモードからXLATEモードに切り替えます(たとえば、現在GUIを使用している場合、キーボードはrawに切り替えられている可能性が高く、コンソールでは使用できません)。
  • e:PID 1(SIGTERM)を除くすべてのプロセスにinitシグナルを送信します。これにより、すべてのプロセスにシャットダウンを要求することができます。
  • …少し待って、すべてのプロセスが正常にシャットダウンする機会を与えます。
  • i:PID 1(SIGKILL)を除くすべてのプロセスにinitシグナルを送信します。これは非常に大事ですnot前のステップの後でまだ実行中のすべてのプロセスにすぐに自殺を依頼してください。
  • … 少し待ってください
  • ssync現在マウントされているすべてのファイルシステム。これにより、ページキャッシュとブロックキャッシュがディスクにフラッシュされます。
  • …Linuxカーネルがすべてのキャッシュをストレージデバイスにフラッシュし、ストレージデバイスがすべての内部キャッシュをメディアにフラッシュできるようになるまで少し待ちます。古いスタイルのディスクアクティビティLEDがまだある場合は、アクティビティが停止するまで待ちます。
  • uumount現在マウントされているすべてのファイルシステム、または現在マウントされているすべてのファイルシステムを読み取り専用で再マウントします。
  • … 少し待ってください
  • brebootまたは代わりに oshutdown

シーケンスはREISUBとして書き出すことができます。それを覚えるための一般的なニーモニックは、「システムが完全に壊れた場合でも再起動する」です。

41
Jörg W Mittag

AltキーとSysRqキー(Print Screenキー)を押しながらREISUBをゆっくり入力すると、安全に再起動できます。 REISUOは再起動ではなくシャットダウンを行います。

9
SteveInBavaria

応答していないプログラムを知っている場合は、TTYシェルに移動します CTRL+ALT+F4 次に、次のスクリプトを使用してそのプログラムを強制終了します。コードをコピーし、exterminate.sh/binとして保存します

#!/bin/bash

userName=$(whoami);
programName="$1";
main(){
    pidVar=$(top -n 1 -d 1 -b | grep -i "$programName" | cut -c -6 );
    kill $pidVar >& /dev/null;
    echo "killed all \"$programName\" instances.";
}

if [ "$userName" == "root" ] ; then main ; else echo "run as root" ; fi;

次に、スクリプトを実行可能にします

Sudo chmod +x /bin/exterminate.sh

そして、それをスーパーユーザーとして実行します。スクリプトに渡す引数に注意してください。誤って交渉した場合よりも多くの損傷が発生する可能性があります。

例えばたとえば、誤動作しているプログラムがtransmissionの場合

Sudo exterminate.sh transmission

トリックを行います。

5
endrias

pCが過負荷になると、Ubuntuシステムがハングします

私にとって、これは通常、RAMが不足し、大幅なスワップが開始されることを意味します。

この状況で役立つのは Alt+SysRq+F ほとんどのメモリを使用するタスクを強制終了するようにシステムに命令する組み合わせ。

を有効にする必要があります SysRq 説明されているように、最初にキー この質問では 。また、一部のラップトップは押し続ける必要があります Fn 同時にキーを押します。

5
jpa

Ctrl + alt + f3を押してTTYに入ります。そこからは、完全なターミナルエクスペリエンスのようになります。 「reboot/poweroff」と入力してEnterキーを押すと、問題が解決するはずです。別の解決策は、ctrl + alt + f1を押してユーザーをロックし、もう一度パスワードを入力してUbuntuに入るというものです。

4
Aaditya Muley

使えるかもしれません Ctrl+Alt+Backspace Xサーバーを強制終了します。

1
Solomon Ucko