因此,Web确实是一件了不起的事情!经过大量研究并深入探讨了许多论坛链接,我设法更好地理解了问题,找出造成此问题的程序,最后彻底禁用了此行为。我以为我会写下自己的步骤,以防其他人遇到同样的问题。
步骤1.监视系统以了解是否/何时打开键盘背光灯
第一件事是要知道可以通过读取文件来检查键盘背光的当前状态/sys/devices/platform/dell-laptop/leds/dell\:\:kbd_backlight/brightness
。因此,我们希望收到有关此文件的任何更改的通知,理想情况下,是什么进程调用该更改的通知。
这可以使用fanotify完成。我使用了手册页中提供的示例程序,并进行了一些修改*,以便可以监视亮度文件的更改。原来,负责修改/usr/lib/upower/upowerd
的进程是,这是UPower的守护进程。
第2步。找出为什么UPower打开背光(失败)
这是调查中最模糊的部分,我仍然不知道为什么会这样。我找到了一个问题非常相似但没有解决方案的人,所以当我找到此链接时,我开始看看是否可以完全禁用UPower(以及后果是什么)。原来UPower有一个配置文件!这样更好
步骤3.,阻止UPower打开键盘背光
最后,我编辑了位于的上述配置文件/etc/dbus-1/system.d/org.freedesktop.UPower.conf
,并在以下行中将其更改<allow>
为<deny>
:
<allow send_destination="org.freedesktop.UPower"
send_interface="org.freedesktop.UPower.KbdBacklight"/>
然后,我sudo service dbus restart
使用dbus (systemctl restart dbus.service
在Ubuntu 16.04及更高版本上使用)重新启动了dbus,然后继续锁定屏幕以测试结果并...起作用了!!好吧,有点。登录屏幕不会显示,因此我无法重新登录,不得不强制重新启动。但是,然后 一切都很好!
就是这样!我仍然很好奇这样做的正确方法。如果您知道,请发表评论!
*例如,示例程序仅设置为监视FAN_OPEN_PERM
和FAN_CLOSE_WRITE
事件,但是在此情况下它是一个FAN_MODIFY
事件。