Linux acpid 命令

Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。本文主要介绍Linux acpid 命令。

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
推荐阅读
cjavapy编程之路首页