簡體   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