繁体   English   中英

如何使用Runtime.exec重定向dmesg的数据?

[英]How to redirect data of dmesg using Runtime.exec?

问题1:我想使用我的应用程序将内核日志重定向到其他文件。 如何正确执行呢? 代码如下所示:

Runtime.getRuntime().exec("dmesg > /data/kernel_log.txt"); 

问题2:我想使用我的应用清除内核日志。 如何更正以下代码;

Runtime.getRuntime().exec("dmesg -c"); 

注意1:我的目标是从START到LATEST获取内核(dmesg)的所有日志。 由于dmesg具有缓冲区大小限制,我不想重建内核只是为了调整缓冲区大小。

注意2:这与很相关; android:如何从代码内运行shell命令

注意3:当前,我正在使用具有ENG模式构建的设备,这意味着这是扎根的,对吗?

Logcat错误消息:

11-11 20:18:47.910: E/DmesgGetterService(2885): java.io.IOException: Error running exec(). Command: [dmesg > /data/kernel_log.txt] Working Directory: null Environment: null
...
11-11 20:19:07.920: E/DmesgGetterService(2885): Caused by: java.io.IOException: No such file or directory
...

我能够以其他方法获取dmesg日志。 使用AlarmManager在指定的间隔内运行服务,我从内核中获取日志,然后找到我从上次运行中复制的最后一行,然后追加新日志。 而已!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM