javadefunct产生的原因和解决办法:
在很多时候,我们启动JAVA进程后,如果退出这个JAVA进程,在系统进程中仍然可以看到这个进程.
这种情况一般出现在UNIX/LINUX系统,对于WIN平台出现情况较少.
这个进程在UNIX平台上,你即使kill进程号也不能杀掉它,但它仍然占用系统资源,成了真正的"僵尸"。
产生的原因:
以前我们下载JDK时,可以下载到JDK的SRC然后自己编译,现在的官方网站上已经找不到可以自己编
译的JDK包,下载回来的JDK都是释放包,我们可以想象,无论SUN在发布JDK时考虑得如何完美,本地
库都不可能完全和当前系统的版本号完全一致。举个例子,假如System.gc()调用了本地库glic6.0.2.so
那么在当前系统上没有这个版本的库或没有这个版本的库的链结,那么gc()方法肯定不能正确工作。
当然sun在发布的时候可能会把这个本地库打包在JDK发行包中,但glic6.0.2.so中又调用了其它库,如
subglic6.0.21.so,即使系统中存在完全相同的glic6.0.2.so,但你无法确认它调用的库又完全匹配,
事实上这几乎是不可能完全匹配的。
正是这样本地库版本号的不一致,才使得需要调用本地库的JVM底层功能不能正确工作,所以清除,
退出进程等工作就可能无法完成,产生了javadefunct。
知道了问题的原因,就能从多方面解决了。如果我们的JDK的src版进行编译安装而不是用SUN提供好的
本地库,当然不会存在上面的问题,但现在好象已经不提供src编译安装的发布包了,所以指定内核版本
号,以便使它和JDK发布时使用的版本相一致,可以基本解决javadefunct。
假如你不知道当前JDK的本地库是基于什么内核版本号发布的,一般来说,应该提供系统当前的内核版本号:
在Linux下,先查看当前的内核版本:
uname-r
2.4.21-4.EL
把主版本号COPY下来,调用:
LD_ASSUME_KERNEL=2.4.21-4
exportLD_ASSUME_KERNEL
如果你知道某个版本的JDK中的本地库是基于某个内核版本发而布的那你可以直接指定LD_ASSUME_KERNEL为
这个版本,这样会获得最大的一致性
分享到:
相关推荐
DEFUNCT
参考文章如何杀死defunct进程(译)首先是通过下面的命令找到父进程的PID输出结果为:其中:如果你使用命令 “kill -9 40428” 尝试杀死 ID
$ npm install defunct 示例用法 var d = require ( 'defunct' ) ; it ( 'should be able to multiply' , function ( t ) { var mul = d . mul ( 10 ) ; t . equal ( mul ( 5 ) , 50 , 'multiply' ) t . end ( )...
在 unix 或 unix-like 的系统中,当一...On Unix and Unix-like computer operating systems, a zombie process or defunct process is a process that has completed execution (via the exit system call) but still
Pubpatterns API API已关闭。 不再维护。
[已停产] 合成化学家的研究工具 - 档案、演示、分子建模、从头计算。
我启动DevPost就是为了解决这个问题,但这只是因为我不知道那里有一些非常好的工具可以做到这一点,例如上面提到的浏览器同步。 由于我宁愿没有的案例,因此我选择中止开发DevPost以便推荐浏览器同步。 DevPost...
TallyMan在2000年被废弃。TallyMan是功能齐全的,高度可定制的商业和站点管理系统。 100%纯Perl / Embperl。
已失效
模板标量并行多模式推荐该推荐器旨在考虑广泛的用户行为,项目内容和上下文信息,以提供实时推荐。 它包含用于处理事件的高度灵活的机制,这些事件合并了用户整个点击流的任何重要部分。 它还可以几种方式混合基于...
该项目已将名称更改为“ Surfraw”,请参见http://surfraw.sourceforge.net。
特征: 前馈和循环网络具有各种学习率策略的 SGD 目前只修复了 LR 和 Adadelta,但很容易添加其他CTC(Connectionist Temporal Classification)用于在没有事先序列对齐的情况下训练 RNN L2 正则化,提前停止即将...
引擎 Engine 是驱动 Go web 框架的核心,具有路由、上下文、http 状态等,以弥合 Go 标准库和您自己的 web 框架之间的距离。
船队 Go 中的基本且可扩展的 Web 框架。
链接到工作模块和实施。 充当讨论规格和提出更改建议的场所。 由于我们尚未进入任何标准轨道(即WHATWG或W3C),因此此回购协议将使用非正式规范。目录会费建议的更改将在问题和请求中讨论。 达成共识后, ...
provide open source cell phones, most of them largely defunct, ranging from the Openmoko Neo FreeRunner to QT Embedded, Moblin, LiMo, Debian Mobile, Maemo, Firefox OS, and Ubuntu Mobile to the open ...
#This is a defunct repo, 该项目已移至 ####我们决定将项目转向另一个方向,所以请加入我们! ====== 使命宣言:我们的使命是为安卓用户提供最简单的解决方案,让他们与附近的其他安卓用户进行交流。 特征 发展...
This is the same repository as the now-defunct official GitHub Android app. What's going on here? > What happened to the old app? GitHub didn't want to maintain the app anymore, so it's been released ...
OLD DEFUNCT开放上下文的源代码( ) 该项目在这里进行了详细讨论: : 该项目正在Swift发展。 从2014年开始,我们开始进行重大的重构,并使用Python和Django彻底放弃了旧代码,从而完全重新开始(请参阅: : )。...