您的位置:首页 > 大数据 > 人工智能

libcore.io.ErrnoException: kill failed: ESRCH (No such process)

2014-08-10 11:49 726 查看
这个问题遇到不止一次,记下解决方法备忘。

运行稳定性脚本时框架崩溃,打印的堆栈信息如下:

libcore.io.ErrnoException: kill failed: ESRCH (No such process)
at libcore.io.Posix.kill(Native Method)
at libcore.io.ForwardingOs.kill(ForwardingOs.java:77)
at java.lang.ProcessManager$ProcessImpl.destroy(ProcessManager.java:257)
at sogou.test.agent.framework.sysinfo.CMDExecute.run(CMDExecute.java:29)

查看了异常发生的位置CMDExecute.java:29,是:

if(process!=null){

process.destroy();
}

发生崩溃的原因log里说的很清楚,就是被destroy的进程已经不存在了。

解决方案:



if(process!=null){
process.destroy();
}

换成

try {

if (process != null) {

// use exitValue() to determine if process is still running.

process.exitValue();

}

} catch (IllegalThreadStateException e) {

// process is still running, kill it.

process.destroy();

}

exitValue()函数采用非阻塞的方式返回,如果没有立即拿到返回值,则抛出异常。

参考:https://groups.google.com/forum/#!topic/android-developers/VcjXWBosQ88
http://leonmau.iteye.com/blog/1174000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐