• jps命令


     jps是jdk提供的一个查看当前java进程的小工具,可以当作 Java Virtual Machine Process Status Tool的缩写

    命令格式:jps [options ] [ hostid ] 

           [options]选项 :
    -q:仅输出VM标识符,不包括classname,jar name,arguments in main method 
    -m:输出main method的参数 
    -l:输出完全的包名,应用主类名,jar的完全路径名 
    -v:输出jvm参数 
    -V:输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX:Flags=所指定的文件 
    -Joption:传递参数到vm,例如:-J-Xms512m

            [hostid]:

    [protocol:][[//]hostname][:port][/servername]

            命令的输出格式 :
    lvmid [ [ classname| JARfilename | "Unknown"] [ arg* ] [ jvmarg* ] ]

    1)jps

     

     

    2)jps –l:输出主类或者jar的完全路径名

     

    3)jps –v :输出jvm参数

     

    4)jps –q :仅仅显示java进程号

     

     

    5)jps -mlv10.134.68.173

     

           注意:如果需要查看其他机器上的jvm进程,需要在待查看机器上启动jstatd。

    jps命令查看进程得到 process information unavailable的解决办法

     jps -J-Djps.debug=true -J-Djps.printStackTrace=true 可以获得Jps错误详细信息

    jps出现process information unavailable(当然我ps -aux了,确定该进程是存在的),网上查找了原因,我的理解是这样:

    因为jps的进程信息是存储在/tmp/hsperfdata_{myuser}中,那么当我使用 root 操作jps时,发现其它用户启动的java进程的tmp文件是读不了的。

    所以使用 sudo -u cloudera-scm /usr/java/jdk1.7.0_79/bin/jps 即可正常显示jps信息了。【原因就是进程信息只有启动用户才有读取权限 600,连root都没有】

    使用相应的用户查看相应的进程

    sudo -u hdfs jps

    异常信息如下:

    31388 -- process information unavailable
        31388 not found
    sun.jvmstat.monitor.MonitorException: 31388 not found
        at sun.jvmstat.perfdata.monitor.protocol.local.PerfDataBuffer.<init>(PerfDataBuffer.java:84)
        at sun.jvmstat.perfdata.monitor.protocol.local.LocalMonitoredVm.<init>(LocalMonitoredVm.java:68)
        at sun.jvmstat.perfdata.monitor.protocol.local.MonitoredHostProvider.getMonitoredVm(MonitoredHostProvider.java:77)
        at sun.tools.jps.Jps.main(Jps.java:92)
    Caused by: java.lang.IllegalArgumentException: Could not map vmid to user Name
        at sun.misc.Perf.attach(Native Method)
        at sun.misc.Perf.attachImpl(Perf.java:270)
        at sun.misc.Perf.attach(Perf.java:200)
        at sun.jvmstat.perfdata.monitor.protocol.local.PerfDataBuffer.<init>(PerfDataBuffer.java:64)
        ... 3 more

    查阅资料发现 /tmp/hsperfdata_root目录下为空,遂把其它以hsperfdata打头的目录下的文件copy到hsperfdata_root下,jps显示正常

  • 相关阅读:
    SVN服务器搭建(一)
    排序算法二:冒泡排序
    【LeetCode】136. Single Number
    【LeetCode】217. Contains Duplicate
    【LeetCode】189. Rotate Array
    【LeetCode】122. Best Time to Buy and Sell Stock II
    【LeetCode】26. Remove Duplicates from Sorted Array
    【LeetCode】20. Valid Parentheses
    【LeetCode】680. Valid Palindrome II
    【LeetCode】345. Reverse Vowels of a String
  • 原文地址:https://www.cnblogs.com/Dhouse/p/6490660.html
Copyright © 2020-2023  润新知