当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 2 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 写一个acpid的流程分析
帖子发表于 : 2011-01-04 11:04 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
走一次流程,看我的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提醒。


_________________
● 鸣学


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 写一个acpid的流程分析
帖子发表于 : 2011-01-04 11:06 
头像

注册: 2007-02-02 18:14
帖子: 30702
系统: debian sid
送出感谢: 1
接收感谢: 34
好的,有空折腾一下,我的没电直接届关机了,连个提醒也没有的


_________________
醉了星星,醉月亮●●●●●The Long Way To Go(*^_^*)


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 2 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译