写一个acpid的流程分析

新手涉及到的教学或入门贴,推荐新手必看,版主维护
回复
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

写一个acpid的流程分析

#1

帖子 eexpress » 2011-01-04 11:04

走一次流程,看我的wm怎么可以在标准的acpi过程中,出低电量报警。

● pidof acpid
958
表示acpid服务启动了。/etc/acpi/events/ 下面的服务脚本有效。

查看下acpi事件的热键
● acpi_listen
拔出本本电源
ac_adapter AC0 00000080 00000000
hotkey ATKD 00000057 00000001
processor CPU0 00000081 00000000
processor CPU1 00000081 00000000
battery BAT0 00000080 00000001

插入本本电源
ac_adapter AC0 00000080 00000001
hotkey ATKD 00000058 00000001
processor CPU0 00000081 00000000
processor CPU1 00000081 00000000
battery BAT0 00000080 00000001

● cd /etc/acpi/events/

● grep ac_adapter *
ac:5:event=ac_adapter

● dog ac
event=ac_adapter
action=/etc/acpi/power.sh 搞那么复杂,不如这里改成自己判断,自己出notify提示

● dog ../power.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 $* 设置低电压模式

● dog /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" 不要想了,都是依赖的wm自带的电源管理
PMS="$PMS guidance-power-manager.py dalston-power-applet" 居然还可以用applet
if pidof -x $PMS > /dev/null || 当然fvwm下一个都没。
(pidof dcopserver > /dev/null && test -x /usr/bin/dcop && /usr/bin/dcop kded kded loadedModules | grep -q klaptopdaemon) || dcop也一样没有,根本不会向下执行
PowerDevilRunning ; then
echo 0;
else
echo 1;
fi
}
PowerDevilRunning() {
test -x /usr/bin/dbus-send || return 1 虽然有dbus

for p in $(pidof kded4); do 完全的kde模式也没
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
}

结论,acpi只认gnome xfce kde自己的电源管理。否则没电量提示。如果不喜欢改acpid。干脆cron里面自己判断电量,直接notify提醒。
● 鸣学
头像
leeaman
帖子: 30702
注册时间: 2007-02-02 18:14
系统: debian sid

Re: 写一个acpid的流程分析

#2

帖子 leeaman » 2011-01-04 11:06

好的,有空折腾一下,我的没电直接届关机了,连个提醒也没有的
醉了星星,醉月亮●●●●●The Long Way To Go(*^_^*)
回复