在部署完应用后,原本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
/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下三小时以内没有使用的文件,并将结果输出)。
补充说明:执行tmpwatch指令可删除不必要的暂存文件,您可以设置文件超期时间,单位以小时计算。
参数:
-a或--all 删除任何类型的文件。
-f或--force 强制删除文件或目录,其效果类似rm指令的"-f"参数。
-q或--quiet 不显示指令执行过程。
-v或--verbose 详细显示指令执行过程。
-test 仅作测试,并不真的删除文件或目录
实例: sudo /usr/sbin/tmpwatch -afv 3 /tmp (清除/tmp下三小时以内没有使用的文件,并将结果输出)。