我有一个安装了 Gentoo 的 Thinkpad。直到昨天,我通过一个简短的脚本更改了面板上的亮度,该脚本将手动调用xrandr
以调整亮度级别。我终于决定是时候通过最终将这个功能赋予我的亮度键来替换这个临时解决方案了。我解决这个问题的方法是分别在/etc/acpi/events和/etc/acpi/actions中创建文件。我现在有两个事件文件可以检测我的亮度键何时被按下,以及两个相应的脚本可以提高或降低屏幕亮度。
这就是我的问题发生的地方。一旦我编写了脚本,一切就正常了。但是,重新启动我的笔记本电脑后,我的亮度键停止响应。我很困惑,因为ps
显示它acpid
正在运行,经过一些试验和错误,我发现我需要一个acpid
手动调用的实例才能使我的新文件工作。这很烦人,因为我更喜欢acpid
通过 open-rc 启动的实例来自动检测和实现这个功能。
我使用 open-rc 作为我的初始化系统。这些是我的 init 文件的内容acpid
。
#!/sbin/openrc-run
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
extra_started_commands="reload"
command="acpid"
command_args_="${ACPID_ARGS}"
description="Daemon for Advanced Configuration and Power Interface"
depend() {
need localmount
use logger
}
reload() {
ebegin "Reloading acpid configuration"
start-stop-daemon --exec $command --signal HUP
eend $?
}
这start-stop-daemon
是用来管理acpid
的。据我所知,这是从 shell 运行和由 openrc 运行之间的最大区别。问题可能出在start-stop-daemon
,或者可能出在我自己编写的事件/动作文件上,即使我确实有另一个手写的事件动作组合,它可以与由 openrc 启动的 acpid 实例以及所有其他标准功能一起使用。