/etc/pm/suspend.d/
システムがハングする前に(非常に短い時間)、ネットワークアクセスが必要なスクリプトを入れたいと思います。ただし、「001_something」というスクリプトを使用してもネットワークにアクセス/etc/pm/suspend.d/
できません。/usr/lib/pm-utils/sleep.d/
スクリプトが実行される前は無効になっているようです。
ネットワークが無効になったのはなぜですか?どのように有効にできますか?
さらに、/var/log
システムの復元後に停止した部分のファイルを上書きするようですが?
以下は以下で観察されますdaemon.log
。
Feb 7 22:09:04 zenbook NetworkManager[3606]: <info> sleep requested (sleeping: no enabled: yes)·
Feb 7 22:09:04 zenbook NetworkManager[3606]: <info> sleeping or disabling...·
Feb 7 22:09:04 zenbook NetworkManager[3606]: <info> (wlan0): now unmanaged·
Feb 7 22:09:04 zenbook NetworkManager[3606]: <info> (wlan0): device state change: activated -> unmanaged (reason 'sleeping') [100 10 37]·
Feb 7 22:09:04 zenbook NetworkManager[3606]: <info> (wlan0): deactivating device (reason 'sleeping') [37]·
私はテスト用にDebianとGnome 3を使用しています。
編集:この質問はpm-utilsとは関係ありません。私が知っている限り、NetworkManagerはネットワークを無効にします(nm-manager.c:do_sleep_wakeで)。この問題を解決する方法はまだわかりません。バラよりNetworkManager:システムをスリープモードに切り替えるときにネットワークを無効にする
答え1
1. 変な?
まず、一時停止が正常に機能していることを確認します。デメリットページを確認し、サスペンションが正常に機能していること、そして一見すると普通に見えないことを確認してください。
2. 001_somethingスクリプトは実行可能ですか?
スクリプトが実行可能であることを確認してください001_something
!
% chmod +x 001_something
3. 001_somethingスクリプトが正しく表示されますか?
スクリプトがpm-utils
期待どおりに機能していることを確認してください。
サンプルスクリプト
#!/bin/bash
case "$1" in
hibernate|suspend)
ACTION BEFORE SUSPEND/HIBERNATE
;;
thaw|resume)
ACTION AFTER RESUME
;;
*)
;;
esac
exit $?
メモ:hibernate|suspend
Case / switchステートメントの正しい部分にネットワークを使用しようとしていますか?
4. .dディレクトリのファイルは正しく機能しますか(/etc/pm/suspens.d/または/usr/lib/pm-utils/sleep.d/)?
001_something
次に、スクリプトが機能しているかどうかを確認するために、ファイルの文字列にエコーを表示して、スクリプトが実際に正しく一時停止/休止状態になっていることを確認します。
echo "yup I'm working" > /tmp/pmck_`date +%Y-%T`.log
pmck_2013-16:08:11.log
これにより、次の内容が表示されます/tmp
。
5./var/ログ?
上記の状況であれば.Dディレクトリが実行されている場合は、ディレクトリを作成して上書きしたと思われるファイルを下の別のファイルにコピーして、少なくとも001_something
ロギングが正しいことを確認できます。これにより、何が起こっているのかをより深く理解することができます。/var/log/pm-suspend.log
/tmp
cp /var/log/pm-suspend.log /tmp/pmlg_`date +%Y-%T`.log
6. 睡眠輪の数は?
フックファイル名を00-something
代わりに変更できますか001_something
?わかりませんが、マニュアルページにこれらの値が記載されています。
SLEEP HOOK ORDERING CONVENTION
00 - 49
User and most package supplied hooks. If a hook assumes that all of the usual services and userspace infrastructure
is still running, it should be here.
50 - 74
Service handling hooks. Hooks that start or stop a service belong in this range. At or before 50, hooks can assume
that all services are still enabled.
75 - 89
Module and non-core hardware handling. If a hook needs to load/unload a module, or if it needs to place non-video
hardware that would otherwise break suspend or hibernate into a safe state, it belongs in this range. At or before
75, hooks can assume all modules are still loaded.
90 - 99
Reserved for critical suspend hooks.
7. インターネット接続?
スクリプトに以下を追加します001_something
。
TMP=/tmp/pmip_`date +%Y-%T`.log
# network status?
ip link show > $TMP
# dns working?
dig google.com +answer >> $TMP
# can we ping google?
ping -c 5 www.google.com >> $TMP
8. pm-utils、HAL、Wheezyにバグがありますか?
私は偶然会ったこの Debian バグレポートこれが問題の原因になる可能性があるかどうか疑問に思います。このバグは、HAL および pm-utils の問題を説明します。 HALを削除すると、ネットワークの問題が解決するようです。
9. より詳細な pm-utils デバッグ
しかもこのリンクDebian関連の一時停止/再開に関する提案を提供します。PM_DEBUG=true
ファイルに変数を設定してpm-utilsロギングを増やす方法について説明しています/usr/lib/pm-utils/pm-functions
。
抜粋
pm-utils デバッグを有効にする
一時停止および再開されたプロセスのログは、/var/log/pm-suspens.log ファイルにあります。デフォルトでは、これにはかなり詳細な情報が含まれています。 /usr/lib/pm-utils/pm-functions ファイルの先頭に import PM_DEBUG=true 行を挿入して、デバッグに関する追加情報を有効にできます。
おそらく、これはpm-utilsで何が起こっているのかをより洞察力を提供するのに役立ちます!
10. ACPIは以前にネットワークをシャットダウンしましたpm-utils
か?
問題pm-utils
がacpi
。ノートブックカバーを閉じると、acpi
それに関連するアクションがあるイベントがトリガーされます。
イベントファイル
% more /etc/acpi/events/lm_lid
event=button[ /]lid
action=/etc/acpi/actions/lm_lid.sh %e
アクション文書
% more /etc/acpi/actions/lm_lid.sh
#! /bin/sh
test -f /usr/sbin/laptop_mode || exit 0
# lid button pressed/released event handler
/usr/sbin/laptop_mode auto
詳しく見ると、laptop_mode
このツールは複数のタスクを実行する役割を果たし、そのうちの1つがネットワークデバイスの状態を管理していることがわかります。
ラップトップモードは、/etc/laptop-mode/conf.d
他のUNIXツールと同様のディレクトリを保持します。イーサネットおよび無線ネットワーク機器に関連するファイルがあります。
基本構成では。ファイル/etc/laptop-mode/laptop-mode.conf
は、より詳細なメッセージを開く機能です。たぶんこれが何が起こっているのかについての追加の手がかりを提供できますか?
VERBOSE_OUTPUT=1
OPからのフィードバックに基づいて試してみる上記の事項を要約します。
1:バッテリー使用量とノートパソコンのスリープLEDに関する限り、一時停止機能が機能します。そうしないと、上記のWebページが答えを見つけるのにどのように役立つかはわかりません。
2:これは。
サム:おおよそのフィットのようです。
4:その書類をもらいました。
5:そのログファイルを受け取りましたが役に立ちません。
6:001 を 00 に変更すると、違いはありません。
7:このセクションの内容はネットワーク接続のみをテストします。私の質問に記載されているようにスクリプトが実行された後、ネットワーク接続はありません。 wlan0 デバイスがダウンしています。ログファイル:http://paste.debian.net/231760。
メモ:digをインストールしていませんが(paste.debian.netログにエラーメッセージが表示されます)、明らかにネットワークにアクセスできません(上記のように)。 iwconfig、ip link show、pingなどの出力を確認すると、ダウンしていることがわかります。... Perlスクリプトは問題のスクリプトです。
ところで、/usr/lib/pm-utils/bin/pm-action
upowerdの最初の行が実行されると、ネットワークはすでにダウンしています。
8:halがインストールされているので、削除しても何も変わりません。