web-dev-qa-db-ja.com

「サスペンド」オプションを機能させる方法は?

電源管理で、「蓋を閉じたときに中断する」というオプションを選択しました。蓋を閉めても、コンピューターはサスペンドしていません。それを維持します。この問題を解決するにはどうすればよいですか?

6
Karthick Bala

これは通常、何らかのプロセスがシステムの中断を停止したときに発生します。

行う

dmesg -T|grep Freez -A4

次のエントリを探します:

--
[Sun mar  3 15:19:48 2013] Freezing user space processes ... 
[Sun mar  3 15:20:08 2013] Freezing of tasks failed after 20.01 seconds (3 tasks refusing to freeze, wq_busy=0):
[Sun mar  3 15:20:08 2013] mount.nfs       D e8631aa0     0  5518   5517 0x00800004
[Sun mar  3 15:20:08 2013]  e8631b10 00000086 f7bc0e00 e8631aa0 c1053cb4 c1809020 c192ee00 c192ee00
--

タイムスタンプを確認して、報告された問題のうち、中断しようとしたことに関連する問題を確認します。この場合、問題を引き起こしているのはmount.nfsです。

ここで、スクリプトを/etc/pm/sleep.d/に配置します。このスクリプトは、一時停止および再開時に実行されます。ファイル名は、ユーザースクリプトの場合は00〜49の順序番号で始まる必要があります(詳細については、man pm-suspendを参照してください)。

スクリプトは次のようになります

#!/bin/sh
(killall -1 mount.nfs; exit 0)

問題が発生した他のプロセスのエントリがあれば、対応するエントリを使用します。

括弧とexit 0はトリックです。プロセスが見つからない場合、killallは終了コード1で終了し、サスペンド全体がキャンセルされます。上記は、0で終了するサブシェルでkillallを実行します。

問題が発生している場合は、/var/log/pm-suspend.logをチェックして、スクリプトの中断と実行の試行をログに記録します。

3
Carl

ふたを閉じる代わりにサスペンドオプションを選択すると、コンピューターはサスペンドしますか?

/var/log/pm-suspend.logのサスペンドログを確認します

停止していない理由がわかるかもしれません。

3
Russell5