ARM嵌入式设备上lirc_monitor输出无法重定向至文件的求助
ARM嵌入式设备lirc_monitor输出重定向为空的排查思路
在ARM嵌入式设备上运行lirc_monitor监控按键输入时,尝试将程序输出重定向至文件,但目标文件始终为空,可按以下思路排查:
检查输出流向标准错误:很多程序会把实时输出打到stderr(标准错误),默认的
>仅重定向stdout(标准输出)。尝试同时重定向两者:lirc_monitor > output.log 2>&1或用合并写法:
lirc_monitor &> output.log禁用输出缓冲:嵌入式环境下程序可能启用全缓冲,导致输出不会立即写入文件。强制禁用缓冲:
stdbuf -o0 -e0 lirc_monitor > output.log 2>&1若系统有
unbuffer工具,也可使用:unbuffer lirc_monitor > output.log 2>&1验证文件路径权限:确保目标文件路径有读写权限,可先尝试写入
/tmp目录(通常全局可写):lirc_monitor > /tmp/lirc_output.log 2>&1确保程序持续运行:若后台运行程序,终端关闭可能导致进程终止,用
nohup让程序脱离终端:nohup lirc_monitor > output.log 2>&1 &追踪程序输出行为:用
strace查看程序实际输出的文件描述符:strace -e write lirc_monitor从输出中找
write(1, "...")(对应stdout)或write(2, "...")(对应stderr)的记录,确认输出流向。测试基础重定向功能:先验证简单命令的重定向是否正常,排查系统层面问题:
echo "test" > test.log若此命令也无法写入,需检查文件系统是否只读、shell环境是否异常。
lirc_monitor输出示例
-sh-3.2# lirc_monitor {lirc monitor}: 0000000000000000 00 CURSOR_DOWN MTK_IR {lirc monitor}: 0000000000000000 00 CURSOR_DOWN MTK_IR {lirc monitor}: 0000000000000000 00 CURSOR_DOWN MTK_IR {lirc monitor}: 0000000000000000 00 CURSOR_DOWN MTK_IR {lirc monitor}: 0000000000000000 00 CURSOR_DOWN MTK_IR {lirc monitor}: 0000000000000000 00 CURSOR_DOWN MTK_IR
内容的提问来源于stack exchange,提问作者jasko887
相关产品推荐
相关产品推荐

