我在我的树莓派上做一个简单的项目,它在某些系统事件(如磁盘读取、以太网通信、处理器过载)上以不同的方式闪烁一些 LED,并且这些 LED 需要在系统空闲一段时间后关闭(当未检测到系统活动时,这些 LED 会表现出不同的强度)。
为了实现空闲检测,我正在使用 XScreenSaver,直到这里,一切都完美无缺。
由于我的项目需要作为守护进程 (etc/init.d) 执行并且需要以 root 权限运行(因为 pigpio 库),因此与 X 服务器(通过 XOpenDisplay)的通信每次都返回 NULL,即使系统已准备好并且在图形界面中。在终端上,手动运行它,一切正常。
根据我的研究,我了解到,当启动时没有可用的控制台时,无法访问 X Server,并且出于安全原因无法访问它。
所以我问,我怎样才能以最简单的方式实现这一点(检测空闲时间)?(我尝试了自我重启,尝试在启动脚本上设置 DISPLAY 变量似乎没有任何效果。)我是 linux 开发的新手,不知道如何正确解决这个问题。