为了实现空闲检测,我使用XScreenSaver,直到这里,一切都运行完美。
由于我的项目需要作为守护进程(etc / init.d)执行并且需要以root权限运行(因为pigpio库),与X Server的通信(通过XOpenDisplay)每次都返回NULL,即使系统也是如此准备就绪,并在图形界面。在终端上,手动运行,一切都很完美。
正如我的研究所做的那样,我知道在启动时没有可用的控制台时无法访问X Server,并且出于安全原因无法访问它。
所以我问,我怎样才能以最简单的方式实现这个目标(检测空闲时间)? (我试过自动重启,尝试在启动脚本上设置DISPLAY变量似乎没什么用。)我是linux开发的新手,无法解决如何正确解决这个问题。
答案 0 :(得分:0)
如果有人和我有同样的问题,请回答我自己的问题。
在X图形界面外检测系统不活动(空闲),只需通过监听其上的IRQ(通常是IRQ 1 / IRQ 12)/ proc / interrupt或更简单(支持其他USB输入)就可以解决USB键盘/鼠标活动问题甚至操纵杆!)通过在“softirq”行监视/ proc / stat,第二个数字列包含当这些设备有一些/任何输入(鼠标移动或按下/释放按键)时传输的数字字节数
这在C中很容易实现,在这些字段上fopen / fread将值与旧值进行比较。
非常感谢我对Linux内部和外部人员的深入研究。用户Olaf具有发现明显的巨大知识。