XopendisPlay从守护程序(C语言)运行时会失败



我正在我的Raspberry Pi上的一个简单项目中工作,该项目在某些系统事件(例如磁盘读取,以太网通信,处理器过载)和这些LED上以不同的方式闪烁一些LED。在系统闲置之后,需要关闭一段时间(这些LED在未检测到的系统活动时会改变其强度)。

为了实现空闲检测,我正在使用Xscreensaver,直到这里,一切都可以完美无缺。

由于我的项目需要以守护程序(etc/init.d)的形式执行,并且需要使用root特权(因为Pigpio库)运行,即使在系统系统中,与X Server的通信(通过XopendisPlay)也每次返回无效已准备就绪并在图形接口中。在终端,手动运行此操作,一切正常。

随着我的研究的进行,我了解到在启动时没有控制台时无法访问X服务器,并且出于安全原因无法访问它。

所以我问,如何以最简单的方式实现(检测空闲时间)?(我尝试了自我重新启动,尝试在开始脚本上设置显示变量似乎没有任何作用。)我是Linux开发的新手,无法正确解决此问题。

如果有人和我有相同的问题,

检测系统不活动(闲置)x图形接口外,只是在/proc/proc/intrupt上监视其IRQ(通常是IRQ 1/irq 12)或更简单的问题(支持其他USB输入),只是USB键盘/鼠标活动的问题(例如即使操纵杆!)通过监视" softirq"行上的/proc/stat,第二个数字列,其中包含数字数量的字节数量,当这些设备具有某些/任何输入(鼠标移动或键按/释放)时传输的字节数量

>

这是不时在C中轻松实现的,在这些字段上fopen/fread与旧值进行比较。

非常感谢我对Linux Internals&的深入研究。用户OLAF对发现明显的知识有很多知识。

最新更新