1、命令简介
acpid命令向用户空间程序通知ACPI事件, acpid应该在系统引导期间启动,并且默认情况下将作为后台进程运行;它将打开一个事件文件(默认为/proc/acpi/event),并尝试读取代表ACPI事件的整行; 如果事件文件不存在,则acpid将尝试通过输入层和netlink连接到Linux内核; 当从这些来源之一接收到ACPI事件时,acpid将检查规则列表,并执行与事件匹配的规则; 如果存在锁定文件(默认情况下为/var/lock/acpid),则acpid将忽略所有传入的ACPI事件。
2、命令用法
acpid [options]
3、命令描述
acpid用于将ACPI事件通知给用户空间程序。Acpid应该在系统引导期间启动,默认情况下将作为后台进程运行。它将打开一个事件文件(默认为/proc/acpi/event
),并尝试读取整行。当接收到一行(一个事件)时,acpid将检查规则列表,并执行与事件匹配的规则。
规则由简单的配置文件定义。Acpid将在配置目录(默认为/etc/acpi/events
)中查找,并解析所有不以点(.
)开头的文件。每个文件必须定义两件事:一个事件和一个动作。任何空行,或第一个字符是井号(' # ')的行将被忽略。多余的行被标记为警告,但不是致命的。每一行有三个标记:键、等号和值。该键最多可以是63个字符,并且不区分大小写(但是空格很重要)。最大长度为511个字符,区分大小写和空格。
事件值是一个正则表达式(参见regcomp(3)),根据它匹配事件。
action值是一个命令行,当发生与规则匹配的事件时,将通过/bin/sh
调用它。命令行可能包含shell特殊字符,它们将被保留。动作值中唯一的特殊字符是转义的%
。字符串%e
将被调用该操作的事件的文字文本所替换。这个字符串可能包含空格,所以如果命令行需要一个令牌,它必须小心地引用%e
。字符串%%
将被字面量%
替换。所有其他的%
转义都是保留的,将导致不加载规则。
该特性允许为同一个事件定义多个规则(尽管不保证顺序),以及为多个事件定义一个规则。要强制acpid重新加载规则配置,请发送一个SIGHUP
。
除了规则文件,acpid还接受Linux域套接字(/var/run/acpid
)上的连接。套接字默认情况下)。任何应用程序都可以连接到这个套接字。一旦连接,acpid将把所有ACPI事件的文本发送到客户端。客户端负责过滤它所关心的消息。acpid不会关闭客户端套接字,除非在SIGHUP
或acpid退出的情况下。
acpid将记录它的所有活动,以及任何操作的标准输出和标准错误到一个日志文件(默认为/var/log/acpid
)。
所有默认文件和目录都可以用命令行选项更改。
4、命令选项
选项 | 描述 |
---|---|
-c, --confdir directory | |
这个选项更改acpid在其中查找规则配置文件的目录。 默认是 /etc/acpi/events 。 | |
-C, --clientmax number | |
此选项将更改可以建立到acpid套接字的非根套接字连接的最大数量。 默认是256。 | |
-d, --debug | 该选项将acpid调试级别增加1。如果调试级别非零, acpid将在前台运行,并将记录到 stdout/stderr ,而不是日志文件。 |
-e, --eventfile filename | |
该选项更改acpid从中读取事件的事件文件。默认是/proc/acpi/event. | |
-g, --socketgroup groupname | |
此选项更改acpid将事件发布到的Linux域套接字的组所有权。 | |
-l, --logfile filename | |
这个选项更改acpid写入的日志文件。默认是/var/log/acpid 。 | |
-m, --socketmode mode | |
此选项更改acpid向其发布事件的Linux域套接字的权限。 默认是0666。 | |
-s, --socketfile filename | |
此选项更改acpid打开的Linux域套接字的名称。 默认是 /var/run/acpid.socket 。 | |
-S, --nosocket filename | |
这个选项告诉acpid不要打开Linux域套接字。这将覆盖-s 选项,并否定所有其他套接字选项。 | |
-v, --version | 打印版本信息并退出。 |
-h, --help | 显示帮助并退出。 |
5、使用示例
使用-l
参数修改写入日志文件:
# acpid -l acpid.txt /var/log/
使用-d
参数启用调试模式:
# acpid -d
使用-g
参数,更改权限组,授权于root组:
# acpid -g root
文件:
/proc/acpi/event
/etc/acpi/
/var/log/acpid
/var/run/acpid.socket