- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在我的树莓派上做一个简单的项目,它在某些系统事件(如磁盘读取、以太网通信、处理器过载)上以不同的方式闪烁一些 LED,并且这些 LED 需要在一段时间后关闭系统处于空闲状态(当未检测到系统事件时,这些 LED 将改变其强度)。
为了实现空闲检测,我使用 XScreenSaver,直到这里,一切都完美运行。
由于我的项目需要作为守护进程(etc/init.d)执行,并且需要以root权限运行(因为pigpio库),与X服务器的通信(通过XOpenDisplay)每次都会返回NULL,即使系统已准备就绪并处于图形界面。在终端上,手动运行它,一切正常。
根据我的研究,我了解到,当启动时没有可用的控制台时,就不可能访问 X Server,并且出于安全原因也无法访问它。
所以我问,我如何以最简单的方式实现这一点(检测空闲时间)? (我尝试自行重启,尝试在启动脚本上设置 DISPLAY 变量似乎不起作用。)我是 Linux 开发新手,不知道如何正确解决这个问题。
最佳答案
如果有人和我有同样的问题,只是提出我自己的问题。
检测 X 图形界面之外的系统不活动(空闲),只是通过监视/proc/interrupt 上的 IRQ(通常是 IRQ 1/IRQ 12)或更简单(支持其他 USB 输入,例如甚至操纵杆!)通过监视“软中断”行上的/proc/stat,第二个数字列包含当这些设备有某些/任何输入(鼠标移动或按下/释放按键)时传输的字节数
这很容易在 C 中实现,通过 fopen/fread 在这些字段上将值与旧值进行比较。
非常感谢我对 Linux 内部结构和用户 Olaf 的深入研究,他们在发现显而易见的事情方面拥有丰富的知识。
关于c - 从守护进程运行时 XOpenDisplay 失败(C 语言),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41253266/
Display XOpenDisplay(0) 和 XOpenDisplay(NULL) 有什么区别? #include struct MwmHints { unsigned long fl
我对 XOpenDisplay 函数没有什么问题。在学校我可以运行程序并且在使用 XOpenDisplay("ip:0") 时它运行良好,但是在我在家里的本地机器上运行程序时(更改当前的 ip)出现“
我有如下代码 bool isValidDisplay() { if (!XOpenDisplay(NULL)) { return false; } return true
谁能向我解释为什么 XOpenDisplay() 不会因为错误的显示名称而失败?只要名称遵循语法约定,它似乎总能成功——即使指定的主机名不存在。 XOpenDisplay() 似乎仅在字符串使用错误语
我安装了 x11vnc 然后执行 x11vnc 但失败了 错误信息如下 $x11vnc -display :0 08/05/2017 19:18:22 x11vnc version: 0.9.13 l
所以我正在开发一些代码,使用 X11 库在 Linux 上与 X-Windows 一起工作。我找到了一些简单的教程,但它们没有详细介绍更多实际用例的最佳实践。 我想知道的一件事是,我应该为每个应用程序
我有一个 *.SO 库,当从应用程序调用时,它会从指定窗口中删除窗口装饰。这是我的代码: #include struct MwmHints { unsigned long flags;
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 6 年前。 Improve th
我正在执行一个 CUDA API 虚拟化项目。该项目基于 QEMU 管理程序。我使用的是最新版本 2.6.0rc3。我已经完成了核心模块,这个问题是关于演示它的。QEMU 2.6.0rc3 有 Ope
现在我觉得自己很愚蠢。我正在尝试在 Qt Creator 中使用 xlib 做一些事情。 我的代码: #include #include int main(int argc, char *argv
本文整理了Java中com.sun.jna.platform.unix.X11.XOpenDisplay()方法的一些代码示例,展示了X11.XOpenDisplay()的具体用法。这些代码示例主要来
我编写了一个程序,该程序在登录后在终端中以 ROOT 权限运行,但在重新启动后调用 XOpenDisplay(NULL) 时失败。该程序通过 rc.local 启动,但似乎无法看到 X11。 我需要
这个问题遵循这个 one .我能够找到该库,但在加载时会引发以下错误 java.lang.UnsatisfiedLinkError: /home/name/Documents/Development/
我是一名优秀的程序员,十分优秀!