zoukankan      html  css  js  c++  java
  • 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显示正常

  • 相关阅读:
    Linux下SSH的Log文件路径
    Linux下压缩与解压命令tar
    Linux命令之at
    Linux下nice/renice命令小结
    Linux命令详解nice
    LVM---动态调整磁盘容量
    VT100字体
    Linux命令之WC
    for name in loop Shell
    Bind9用view配主从
  • 原文地址:https://www.cnblogs.com/Dhouse/p/6490660.html
Copyright © 2011-2022 走看看