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/suspend.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/log?

如果以上情况.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-suspend.log 中。默认情况下,它包含相当详细的信息。通过将行 export PM_DEBUG=true 插入到文件 /usr/lib/pm-utils/pm-functions 的开头,可以启用更多信息以进行调试。

也许这可能有助于让您更深入地了解 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您会发现该工具负责执行多种操作,其中之一是管理网络设备的状态。

laptop-mode 维护一个目录/etc/laptop-mode/conf.d,类似于其他 UNIX 工具。其中有与以太网和无线网络设备相关的文件。

在主配置中。 file, /etc/laptop-mode/laptop-mode.conf, 是打开更详细消息传递的能力。也许这会为正在发生的事情提供一些额外的线索?

VERBOSE_OUTPUT=1

根据OP的反馈总结上述要尝试的事情

1:就电池使用情况和笔记本电脑上的睡眠 LED 而言,挂起功能有效。否则我不明白上述网页应该如何帮助我找到答案。

2:这是。

3:看起来是正确的。

4:我得到那些文件。

5:我得到了相应的日志文件,但这些对我没有帮助。

6:00 代替 001 没有任何区别。

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 已安装,删除它不会改变任何东西。

相关内容