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
运行稳定性脚本时框架崩溃,打印的堆栈信息如下:
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
相关文章推荐
- 【Android】Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
- Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
- libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
- Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or d.......
- nginx: [alert] kill(1668, 1) failed (3: No such process)的解决办法及nginx服务常用命令总结
- nginx平滑重启过程中提示[alert] kill(2942, 1) failed (No such process)问题分析及解决方案
- nginx: [alert] kill(2094,1) failed (3: No such process)
- nginx: [alert] kill(2480, 10) failed (3: No such process)的解决办法及nginx服务常用命令总结
- Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated with hostn
- nginx: [alert] kill(1668, 1) failed (3: No such process)的解决办法及nginx常用命令总结
- SocketTimeoutException,Caused by: libcore.io.ErrnoException: recvfrom failed: EAGAIN (Try again)
- android Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated wi
- nginx: [alert] kill(2480, 10) failed (3: No such process)的解决办法
- nginx: [alert] kill(1022, 1) failed (3: No such process)
- nginx: [alert] kill(12268, 1) failed (3: No such process)
- libcore.io.ErrnoException: recvfrom failed: ECONNRESET (Connection reset by peer)
- linux 下nginx 的安装重启的时候出现[alert] kill(646, 1) failed (3: No such process)
- 解决 nginx: [alert] kill(189, 1) failed (3: No such process)
- 访百度糯米之 Caused by: libcore.io.ErrnoException: open failed: EACCES (P
- java.io.IOException: open failed: ENOENT (No such file or directory)open failed: EISDIR (Is a directory)