我正在开发一个嵌入式 Linux 项目,我将在其中开发一个程序,该程序将在启动时自动运行并通过字符显示和某种按钮阵列与用户交互。如果我们使用一个简单的 GPIO 按钮阵列,我可以轻松编写程序来查找这些 GPIO 线上的按键。但是,我们的一个想法是使用 USB 数字键盘设备代替用户输入。我的理解是这些设备将作为 USB 键盘呈现给操作系统。如果沿着这条路走下去,有没有办法让我的程序从 Linux 中查找这个 USB 键盘上的输入,记住没有虚拟终端或 VGA 显示器。插入 USB 键盘后,“/dev”中是否有实体可以打开文件描述符?
我正在开发一个应该在默认 linux 终端(我没有安装 X 服务器)中启动时自动启动的 Curses GUI。我的这个工作很好,但我有一个问题,在我的 curses 应用程序启动后不久,操作系统会将一些信息转储到终端,这会弄乱我的 GUI。每次都会弹出有关“预读缓存”的信息。我还看到插入 USB 闪存驱动器或其他设备时显示的消息。
有没有办法防止这些消息被发送到/dev/tty1?
我在 CentOS 6.3 系统上遇到了一个问题,其中 crond 进程试图一遍又一遍地发送邮件(至少我认为这是它所做的),直到操作系统最终生成“打开的文件太多”错误。此计算机未连接到网络。
运行一夜后,当用户尝试登录时,系统会产生“文件打开过多”错误。
如果我在运行几个小时后检查进程列表,我会看到这三个进程多次列出(随着时间的推移,次数或重复次数继续增加):
CROND
/usr/sbin/sendmail -FCronDaemon -i -odi -oem -i -t ...
/usr/sbin/postdrop -r
Run Code Online (Sandbox Code Playgroud)
我修改了/etc/crontaband /etc/anacrontab,并改变了这一行:
MAILTO=root
Run Code Online (Sandbox Code Playgroud)
到
MAILTO=""
Run Code Online (Sandbox Code Playgroud)这些尝试修复都没有解决问题。看起来它实际上postdrop是挂起的进程。如果我杀死它,其他两个进程也会死亡。除了一些更优雅的解决方案,我的下一个攻击计划是postdrop用一个什么都不做并退出的 bash 脚本替换,以防止这些进程累积。任何建议表示赞赏!