pm-utils:ストップスクリプトにネットワークがありませんか?

pm-utils:ストップスクリプトにネットワークがありませんか?

/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|suspendCase / 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-utilsacpi。ノートブックカバーを閉じると、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-actionupowerdの最初の行が実行されると、ネットワークはすでにダウンしています。

8:halがインストールされているので、削除しても何も変わりません。

関連情報