web-dev-qa-db-ja.com

KubuntuでHibernateを完全に無効にするにはどうすればよいですか?

休止状態を無効にする方法 で答えを見ましたが、そのようなファイルはありません。おそらく、この提案はKubunt(GnomeではなくKDE)ではなく、Ubuntu向けに書かれたためです。

暗号化されたSSDでスワップを持たない。[エネルギー管理]で[休止状態]ボタンを誤って押すと、システムがフリーズします(Caps Lockを変更することさえできません)。キーボードにはHibernateボタンがあります(Fn + F4)音量調節ボタンの横で、間違ったキーを押すたびに、システムがフリーズします。

それで、それを無効にする正しい方法は何ですか?解決策がない場合は、回避策も歓迎します。

11
Lekensteyn

休止状態のトリガー:

  • キックオフの[休止状態]ボタンを押します-> [終了]-> [休止状態]
  • システムトレイのエネルギーアイコンで休止状態を押す
  • Dbusシグナルを送信します:qdbus org.kde.kded /modules/powerdevil suspend 4

休止状態がトリガーされると、これが実行フローになります。

  1. /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linuxが呼び出されます
  2. /usr/sbin/pm-hibernateはいくつかの引数で呼び出されます
  3. /var/log/pm-suspend.logへのロギングが開始されます
  4. フックは、休止状態に備えるために実行されます。これらのフックは/usr/lib/pm-utils/sleep.d/および/etc/pm/sleep.dにあり、名前でソートされています(数字が最初)
  5. performing hibernateはログに書き込まれます
  6. シェル関数do_hibernateが呼び出され、システムに休止状態を指示します
  7. システムが再開すると、フックが実行されて休止状態から復元されます
  8. システムが再び実行されています

休止状態を無効にするには、次のコンテンツで/etc/pm/sleep.d/000no-hibernationを作成します。

#!/bin/sh
# prevents hibernation
. "$PM_FUNCTIONS"
[ "$1" = "hibernate" ] && inhibit || true

000no-hibernationなどのスクリプトの前に00logging(ログにモジュールとメモリ情報を出力する)が呼び出されるため、アプリケーションやモジュールは中断またはアンロードされません。この名前は/usr/lib/pm-utils/sleep.d/000kernel-changeに触発されました。 バグ#665651 に注意してください。これにより、フックのゼロ以外の戻り値がサスペンドまたはハイバネーションのキャンセルに失敗します。

これにより、休止状態の問題が修正されます。画面はロックされますが、私はこれで生きることができます。クラッシュするシステムに比べてはるかに優れています。

6
Lekensteyn