2011-03-11 10 views
17

विंडोज अपडेट के बाद, मेरे जेपीएस, jconsole et jvisualvm अब और काम नहीं कर रहे हैं।जेपीएस प्रक्रिया जानकारी अनुपलब्ध - jconsole और jvisualvm काम नहीं कर रहे

JPS मुझे प्रक्रिया आईडी देता है, लेकिन यह मुझे process information unavailable

बताता है और मैं jvisualvm साथ उन प्रक्रियाओं से कनेक्ट करने के रूप में मैं करने के लिए इस्तेमाल में असमर्थ हूँ।

मैं 1.6.0_22 जून चला रहा हूं।

मुझे पहले से ही समस्या थी, this trick कोशिश करता है, और यह काम करता है। लेकिन इस बार, दुर्भाग्य से, यह मदद नहीं करता है।

संपादित करें: मैं एक समाधान पाया: मेरे अस्थायी फ़ोल्डर में, मैं hsperfdata_<username> फ़ोल्डर को नष्ट किया था। स्पष्ट रूप से मेरे उपयोगकर्ता नाम के मामले में कोई समस्या थी। फ़ोल्डर को hsperfdata_myname कहा जाता था। जेपीएस को कॉल करके नष्ट कर दिया गया और फिर से बनाया गया, इसे hasperfdata_MYNAME कहा जाता था।

बहुत अजीब।

उत्तर

25

मेरे अस्थायी फ़ोल्डर में, मैंने hsperfdata_ फ़ोल्डर को नष्ट कर दिया। स्पष्ट रूप से मेरे उपयोगकर्ता नाम के मामले में कोई समस्या थी। फ़ोल्डर को hsperfdata_myname कहा जाता था। जेपीएस को कॉल करके नष्ट कर दिया गया और फिर से बनाया गया, इसे hasperfdata_MYNAME कहा जाता था।

बहुत अजीब।

+0

धन्यवाद, धन्यवाद, धन्यवाद, धन्यवाद ... मैं अपने बालों को बाहर –

0

हमें यहां एक ही समस्या है।

टीएमपी फ़ोल्डर चाल हमारे लिए भी काम नहीं करती है।

अब तक, हम बनाने के लिए चीजों को फिर से काम के लिए कुछ तरीके पाया है:

  • एक प्रणाली को बहाल
  • के तहत अस्थायी फ़ोल्डर का नाम बदलें "C: \ दस्तावेज़ और सेटिंग्स \ myusername \ Local Settings" और एक नया अस्थायी फ़ोल्डर बनाएं (मुझे यकीन नहीं है कि यह विंडोज़ के संबंध में करने के लिए एक सुरक्षित बात है ...)
  • मैन्युअल रूप से अस्थायी फ़ोल्डर से सामग्री को हटाने शुरू करें
  • शायद सबसे सुरक्षित: रन ccleaner, यह होगा अस्थायी फ़ोल्डर को साफ करें
+0

मैं अंत में एक समाधान (मूल प्रश्न देखें) –

10

यूनिक्स पर, सुनिश्चित करें कि आप इसे शुरू करने वाले उपयोगकर्ता के रूप में चल रहे हैं।

+2

अच्छा खींच रहा था मिल गया! कुछ ऐसा: sudo -u उपयोगकर्ता नाम jps –

+0

अच्छा है! मैंने उपयोगकर्ता को स्विच किया और सारी जानकारी उपलब्ध थी। – drochora

0

मैंने कार्यस्थल को लागू करने के लिए एक स्क्रिप्ट लिखी, जिसे मैं अपनी कुछ निगरानी स्क्रिप्ट से कॉल करता हूं, जब तक कि यह तय नहीं हो जाता।

#!/bin/bash 
# Name: fix_jps.bash 
# Author: Cameron Pierce 
# 
# Purpose: create /tmp/hsperfdata directories that jps and jstat can work with 

## VARIABLES 
RETVAL="" 
fileHSP="" 
filePID="" 
fileLOG=/tmp/fix_jps.log 

# for every /tmp/hsperfdata_[name] directory that exists 
for fileHSP in `ls -d /tmp/hsperfdata_*`; do 
     #echo "entry ${fileHSP}" # DEBUG 
     # if our search returns entries that are not directories, skip them 
     if [ ! -d ${fileHSP} ]; then 
       continue 
     fi 
     #ls ${fileHSP} # DEBUG 

     # alternative to ls below 
     #FINDFILES=(${fileHSP}/*) 
     #if [ ${#FINDFILES[@]} -gt 0 ]; then 
     #  echo "files in $fileHSP: ${#FINDFILES[@]} " 
     #fi 
    for filePID in `ls ${fileHSP}/ 2>> ${fileLOG} | grep "[[:digit:]]\{1,\}"`; do 
      #echo "pid name: ${filePID}" # DEBUG 
      # if the directory was empty, move on to the next fileENTRY 
      if [ "${filePID}" == "" ]; then 
        #echo "the contents of the variable filePID appear to be empty \"${filePID}\"" # DEBUG 
        # remove the fileHSP if empty; this will clean up user hsperfdata dirs 
        rmdir ${fileHSP} 2>> ${fileLOG} 
        continue 
      # if a symlink already exists, move on to the next fileENTRY 
      elif [ -h /tmp/hsperfdata_${filePID} ]; then 
        #echo "symlink already exists for /tmp/hsperfdata_${filePID}" # DEBUG 
        continue 
      fi 
      #echo "name: ${filePID}" 
      # if a process exists for filePID, create a symlink to the source file 
      ps -eo pid | awk '{print $1}' | grep -q "^${filePID}$" 
      RETVAL=$? 
      # if a process exists with pid of filePID and a symlink doesn't exists, create symlink 
      if [ $RETVAL -eq 0 -a ! -e /tmp/hsperfdata_${filePID} ]; then 
        ln -s ${fileHSP}/${filePID} /tmp/hsperfdata_$filePID 
        #echo ls -l /tmp/hs perfdata_${filePID} # DEBUG 
      fi 
    done 
done 

# remove broken symlinks 
#find -L /tmp/hsperfdata_* -type l # DEBUG 
find -L /tmp/hsperfdata_* -type l -delete 
संबंधित मुद्दे