ACPId服务工作原理详解

运维 系统运维
在手持设备设计中,电源管理历来为重要的研究课题之一。我们日常所说的省电就属于电源管理的范畴,这也是我们最关心的一个部分。

通过挂起不必要的设备、降低CPU的频率或者其它方法,可以减少能量的消耗,达到省电的目的。电源管理实际上是一个系统工程,从应用程序到内核框架,再到设备驱动和硬件设备,都要参与进来,才能达到电源管理的***化。本文介绍一下ACPId服务的工作原理。

ACPId服务是AdvancedConfigurationandPowerInterface缩写,acpid中的d则代表daemon。Acpid是一个用户空间的服务进程,它充当Linux内核与应用程序之间通信的接口,负责将kernel中的电源管理事件转发给应用程序。

ACPId服务与内核的通信方式:acpid用poll函数挂在/proc/acpi/event文件上。内核在drivers/acpi/event.c中实现了该文件的接口,一旦总线事件列表(acpi_bus_event_list)上有电源管理事件发生,内核就会唤醒挂在/proc/acpi/event上的acpid,acpid再从/proc/acpi/event中读取相应的事件。acpid与应用程序的通信方式有两种,
其一是通过本地socket,其文件名为/var/run/acpid.socket,应用程序只要连接到这个socket上,不用发送任何命令就可以接收到acpid转发的电源管理事件。
其二是通过配置文件。在acpid收到来自内核的电源管理事件时,根据配置文件中的规则执行指定的命令。

ACPId服务配置文件在/etc/acpi/events/目录下,
下面是一个示例:
event=button/power.*action=/sbin/shutdown-hnow
ACPId服务事件的格式为:
device_classbus_idtypedata。device_class和bus_id是字符串,type和data是十六制整数。在配置文件中可以使用通配符,来匹配指定的事件。

出处:http://blog.csdn.net/absurd/(T115)

【编辑推荐】

  1. Linux 查看磁盘空间实现代码介绍
  2. Linux操作系统需要微软的十大帮助
  3. 探寻Linux到底需要多低的配置
  4. Linux测试工具tcpdump监视TCP/IP连接命令介绍
  5. Linux流量控制实例应用介绍
责任编辑:chenqingxiang 来源: 软件开发网
相关推荐

2010-07-21 10:25:53

Telnet服务

2010-06-18 15:34:49

2012-11-12 10:38:13

IBMdw

2018-01-29 10:09:20

联通2G退网

2011-03-11 09:41:17

JavaGC

2009-07-09 14:01:22

JVM工作原理

2010-09-26 08:50:11

JVM工作原理

2012-11-30 10:50:40

视频服务器

2020-10-16 08:30:00

foreach编程语言C#

2012-09-13 11:17:22

IBMdw

2018-06-01 09:17:52

区块链以太坊

2015-01-27 14:47:52

http协议

2011-05-25 11:26:46

LVS-DRLVS

2009-11-09 08:53:21

ASP.NET缓存

2021-09-07 06:40:25

AndroidLiveData原理

2010-09-25 13:25:55

DHCP服务器工作原理

2009-09-16 18:02:13

WSUS服务器

2020-10-30 09:00:00

JavaScriptJavaScript引前端

2020-10-21 10:50:24

LVSNginxHAProxy

2009-06-03 09:11:03

Hibernate工作原理体系结构
点赞
收藏

51CTO技术栈公众号