困扰了我好久,因为这个问题,一直在IRC里请教了许多朋友,得到一些提示,最终还是自己去研究,但是不懂shell代码,比较难,所以来开帖请教。
我追踪到问题似乎出现在这里:
/etc/acpi/power.sh
代码: 全选
#!/bin/sh
test -f /usr/share/acpi-support/key-constants || exit 0
. /usr/share/acpi-support/policy-funcs
if [ -z "$*" ] && ( [ `CheckPolicy` = 0 ] || CheckUPowerPolicy ); then
exit;
fi
pm-powersave $*
这里有个重要的问题,如果我注解掉IF这语句来用,会不会有什么后果?麻烦懂的朋友解释下这些代码。。。
/usr/share/acpi-support/policy-funcs
代码: 全选
CheckUPowerPolicy() {
if pidof upowerd > /dev/null; then
return 0;
else
return 1;
fi
}
CheckPolicy() {
local PMS
PMS="gnome-power-manager kpowersave xfce4-power-manager"
PMS="$PMS guidance-power-manager.py dalston-power-applet"
if pidof -x $PMS > /dev/null ||
(pidof dcopserver > /dev/null && test -x /usr/bin/dcop && /usr/bin/dcop kded kded loadedModules | grep -q klaptopdaemon) ||
PowerDevilRunning ; then
echo 0;
else
echo 1;
fi
}
PowerDevilRunning() {
test -x /usr/bin/dbus-send || return 1
for p in $(pidof kded4); do
test -r /proc/$p/environ || continue
local DBUS_SESS=$(cat /proc/$p/environ | grep -z "DBUS_SESSION_BUS_ADDRESS=")
test "$DBUS_SESS" != "" || continue
(su - $(ps -o user= $p) -c "$DBUS_SESS dbus-send --print-reply --dest=org.kde.kded /kded org.kde.kded.loadedModules" | grep -q powerdevil) && return 0
done
return 1
}
然后我参考了下面这个帖子,恐怕是这里唯一分析电源管理的帖子了吧。。。
viewtopic.php?t=312674
高手们不要客气,尽管拍我吧。。小和尚,我阿你佗佛了。。。