<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Chan Chen Coding...

    Jps介紹以及解決jps無(wú)法查看某個(gè)已經(jīng)啟動(dòng)的java進(jìn)程問(wèn)題

    1、jps的作用

    jps類似linux的ps命令,不同的是ps是用來(lái)顯示進(jìn)程,而jps只顯示java進(jìn)程,準(zhǔn)確的說(shuō)是當(dāng)前用戶已啟動(dòng)的部分java進(jìn)程信息,信息包括進(jìn)程號(hào)和簡(jiǎn)短的進(jìn)程command。

     

    2、某個(gè)java進(jìn)程已經(jīng)啟動(dòng),用jps卻顯示不了該進(jìn)程進(jìn)程號(hào)

    這個(gè)問(wèn)題已經(jīng)碰到過(guò)兩次了,所以在這里總結(jié)下。

    現(xiàn)象:

    用ps -ef|grep java能看到啟動(dòng)的java進(jìn)程,但是用jps查看卻不存在該進(jìn)程的id。待會(huì)兒解釋過(guò)之后就能知道在該情況下,jconsole、jvisualvm可能無(wú)法監(jiān)控該進(jìn)程,其他java自帶工具也可能無(wú)法使用

     

    分析:

    java程序啟動(dòng)后,默認(rèn)(請(qǐng)注意是默認(rèn))會(huì)在/tmp/hsperfdata_userName目錄下以該進(jìn)程的id為文件名新建文件,并在該文件中存儲(chǔ)jvm運(yùn)行的相關(guān)信息,其中的userName為當(dāng)前的用戶名,/tmp/hsperfdata_userName目錄會(huì)存放該用戶所有已經(jīng)啟動(dòng)的java進(jìn)程信息。對(duì)于windows機(jī)器/tmp用Windows存放臨時(shí)文件目錄代替。

     

    而jps、jconsole、jvisualvm等工具的數(shù)據(jù)來(lái)源就是這個(gè)文件(/tmp/hsperfdata_userName/pid)。所以當(dāng)該文件不存在或是無(wú)法讀取時(shí)就會(huì)出現(xiàn)jps無(wú)法查看該進(jìn)程號(hào),jconsole無(wú)法監(jiān)控等問(wèn)題

     

    原因:

    (1)、磁盤(pán)讀寫(xiě)、目錄權(quán)限問(wèn)題

    若該用戶沒(méi)有權(quán)限寫(xiě)/tmp目錄或是磁盤(pán)已滿,則無(wú)法創(chuàng)建/tmp/hsperfdata_userName/pid文件。或該文件已經(jīng)生成,但用戶沒(méi)有讀權(quán)限

     

    (2)、臨時(shí)文件丟失,被刪除或是定期清理

    對(duì)于linux機(jī)器,一般都會(huì)存在定時(shí)任務(wù)對(duì)臨時(shí)文件夾進(jìn)行清理,導(dǎo)致/tmp目錄被清空。這也是我第一次碰到該現(xiàn)象的原因。常用的可能定時(shí)刪除臨時(shí)目錄的工具為crontab、redhat的tmpwatch、ubuntu的tmpreaper等等

    這個(gè)導(dǎo)致的現(xiàn)象可能會(huì)是這樣,用jconsole監(jiān)控進(jìn)程,發(fā)現(xiàn)在某一時(shí)段后進(jìn)程仍然存在,但是卻沒(méi)有監(jiān)控信息了。

     

    (3)、java進(jìn)程信息文件存儲(chǔ)地址被設(shè)置,不在/tmp目錄下

    上面我們?cè)诮榻B時(shí)說(shuō)默認(rèn)會(huì)在/tmp/hsperfdata_userName目錄保存進(jìn)程信息,但由于以上1、2所述原因,可能導(dǎo)致該文件無(wú)法生成或是丟失,所以java啟動(dòng)時(shí)提供了參數(shù)(-Djava.io.tmpdir),可以對(duì)這個(gè)文件的位置進(jìn)行設(shè)置,而jps、jconsole都只會(huì)從/tmp目錄讀取,而無(wú)法從設(shè)置后的目錄讀物信息,這是我第二次碰到該現(xiàn)象的原因

     

    關(guān)于設(shè)置該文件位置的參數(shù)為-Djava.io.tmpdir

     

    其他:

    /tmp/hsperfdata_userName/pid文件會(huì)在對(duì)應(yīng)java進(jìn)程退出后被清除。如果java進(jìn)程非正常退出(如kill -9),那么pid文件會(huì)被保留,直到執(zhí)行一次java命令或是加載了jvm程序的命令(如jps、javac、jstat),會(huì)將所有無(wú)用的pid文件都清除掉



    -----------------------------------------------------
    Silence, the way to avoid many problems;
    Smile, the way to solve many problems;

    posted on 2013-04-26 19:35 Chan Chen 閱讀(410) 評(píng)論(0)  編輯  收藏 所屬分類: Scala / Java

    主站蜘蛛池模板: 久久久久亚洲精品天堂| 亚洲一区日韩高清中文字幕亚洲| 亚洲Av无码专区国产乱码DVD| 一级a性色生活片久久无少妇一级婬片免费放 | 亚洲欧洲日产国码久在线观看| 羞羞视频免费网站在线看| 亚洲精品成人在线| 曰批免费视频播放免费| 国产成人免费一区二区三区| 亚洲国产成人无码AV在线影院| 天天天欲色欲色WWW免费| 国产精品亚洲综合久久| 午夜毛片不卡高清免费| 亚洲av无码成人影院一区| 国产男女猛烈无遮挡免费视频网站| 国产成人综合亚洲绿色| 亚洲XX00视频| 成年免费a级毛片免费看无码| 亚洲人成中文字幕在线观看| 美女在线视频观看影院免费天天看| 国产亚洲精品岁国产微拍精品| 香蕉免费一区二区三区| 亚洲色图黄色小说| 毛片a级毛片免费观看免下载 | 中文字幕成人免费视频| 亚洲国产精品成人精品软件| 在人线av无码免费高潮喷水| 亚洲日韩精品A∨片无码加勒比| 暖暖日本免费在线视频| 一边摸一边桶一边脱免费视频| 亚洲精品无码精品mV在线观看| 免费国产污网站在线观看15| 亚洲一区二区三区高清不卡| 国产91在线免费| 国产成人AV免费观看| 亚洲国产高清美女在线观看| 白白国产永久免费视频| 久久99久久成人免费播放| 亚洲视频小说图片| 国产hs免费高清在线观看| 无码少妇精品一区二区免费动态 |