在部署完應用后,原本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下三小時以內沒有使用的文件,并將結果輸出)。