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

这个问题遇到不止一次,记下解决方法备忘。 
运行稳定性脚本时框架崩溃,打印的堆栈信息如下: 
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 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值