java长时间运行后,jps失效

在部署完应用后,原本jps使用的好好的,能正确的查询到自己正在运行的java程序。

 

但,过了一段时间后,再使用jps来查看运行的应用时,自己运行的程序都看不到,但是自己也没有关闭这些程序啊!然而使用 ps aux | grep java 却能看到对应的进程,纳闷了很久。

 

然后google了一把,找到了根源所在。

http://www.etcn.cn/Tech/Program/Java/2012/1020/28062.html

写道
/tmp/hsperfdata_hadoop

/etc/cron.daily/tmpwatch

 

系统执行了一个定时任务,清理/tmp/hsperfdata_$user下的文件,而jps就是通过这些文件来感知java的应用的。(注意: 在tmp下的hadooop的pid文件也被清理了,所以,最好把pid的目录也在配置文件里面定义一下!)

 

所以,当使用 jps 找不到你运行很久的程序时,不要以为他们挂了!!可使用命令确认:

 

ps aux | grep java | grep -v grep 

 

 

tmpwatch命令的使用

http://zhouyaoemb.blog.163.com/blog/static/178343101201152922847620/

写道
语 法:tmpwatch [-afqv][--test][超期时间][目录...]

补充说明:执行tmpwatch指令可删除不必要的暂存文件,您可以设置文件超期时间,单位以小时计算。

参数:
-a或--all  删除任何类型的文件。
-f或--force  强制删除文件或目录,其效果类似rm指令的"-f"参数。
-q或--quiet  不显示指令执行过程。
-v或--verbose  详细显示指令执行过程。
-test  仅作测试,并不真的删除文件或目录

实例: sudo /usr/sbin/tmpwatch -afv 3 /tmp (清除/tmp下三小时以内没有使用的文件,并将结果输出)。

 

 

你可能感兴趣的:(jps,tmpwatch)