• unix PS命令和JPS命令的区别


    1、JPS介绍

        用来查看基于HotSpot的JVM里面中,所有具有访问权限的Java进程的具体状态, 包括进程ID,进程启动的路径及启动参数等等,与unix上的ps类似,只不过jps是用来显示java进程,可以把jps理解为ps的一个子集。

        使用jps时,如果没有指定hostid,它只会显示本地环境中所有的Java进程;如果指定了hostid,它就会显示指定hostid上面的java进程,不过这需要远程服务上开启了jstatd服务,可以参看前面的jstatd章节来启动jstad服务。

    2、命令格式

    jps [ options ] [ hostid ]

    3、常用参数说明

    -q 忽略输出的类名、Jar名以及传递给main方法的参数,只输出pid。

    -m 输出传递给main方法的参数,如果是内嵌的JVM则输出为null。

    -l 输出应用程序主类的完整包名,或者是应用程序JAR文件的完整路径。

    -v 输出传给JVM的参数。

    -V 输出通过标记的文件传递给JVM的参数(.hotspotrc文件,或者是通过参数-XX:Flags=指定的文件)。

    -J 用于传递jvm选项到由javac调用的java加载器中,例如,“-J-Xms48m”将把启动内存设置为48M,使用-J选项可以非常方便的向基于Java的开发的底层虚拟机应用程序传递参数。

    4、服务器标识

    hostid指定了目标的服务器,它的语法如下:

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

    protocol - 如果protocol及hostname都没有指定,那表示的是与当前环境相关的本地协议,如果指定了hostname却没有指定protocol,那么protocol的默认就是rmi。

    hostname - 服务器的IP或者名称,没有指定则表示本机。

    port - 远程rmi的端口,如果没有指定则默认为1099。

    Servername - 注册到RMI注册中心中的jstatd的名称。

    5、使用示例

    5.1、列出本地的Java进程

    不带任何参数

    fenglibin@libin:~$ jps

    11644 Main

    1947 

    12843 Jps

    带-v参数

    fenglibin@libin:~$ jps -v

    11644 Main -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:43467 -Dfile.encoding=GBK

    1947  -Dosgi.requiredJavaVersion=1.5 -XX:MaxPermSize=256m -Xms40m -Xmx512m

    12858 Jps -Denv.class.path=/home/fenglibin/java6/lib/dt.jar:/home/fenglibin/java6/lib/tools.jar::/usr/bin/libtool:/usr/bin/autoconf:/usr/local/BerkeleyDB.4.8/lib -Dapplication.home=/home/fenglibin/java6 -Xms8m

    带-l参数

    fenglibin@libin:~$ jps -l

    11644 com.alibaba.china.webww.core.Main

    12870 sun.tools.jps.Jps

    1947

    5.2、列出远程的Java进程

    在jstatd章节,我们有通过:

    rmiregistry 2020&jstatd -J-Djava.security.policy=all.policy -p 2020 -n AlternateJstatdServerName

    启动了名为AlternateJstatdServerName的jstatd服务,那么我们此时就可以通过该服务列出其有权限访问的Java进程。

    fenglibin@libin:~$ jps 10.1.1.234:2020/AlternateJstatdServerName

    29556 Bootstrap

    28671 WSPreLauncher

    2602 RegistryImpl

    18272 Test

    2603 Jstatd

    ps -ef 查看正在活动的进程

    ps -ef |grep abc 查看含有"abc"的活动进程

    ps -ef |grep -v abc 查看不含abc的活动进程

      1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。

      2)ps -A 显示所有程序。

      3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。

      4)ps -e 此参数的效果和指定"A"参数相同。

      5)ps e 列出程序时,显示每个程序所使用的环境变量。

      6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。

      7)ps -H 显示树状结构,表示程序间的相互关系。

      8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。

      9)ps s 采用程序信号的格式显示程序状况。

      10)ps S 列出程序时,包括已中断的子程序资料。

      11)ps -t<终端机编号>

      指定终端机编号,并列出属于该终端机的程序的状况。

      12)ps u

      以用户为主的格式来显示程序状况。

      13)ps x

      显示所有程序,不以终端机来区分。

      最常用的方法是ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作

  • 相关阅读:
    Web.xml中Filter过滤器标签几个说明
    JVM参数配置大全
    Java时间日期格式转换
    第一天用博客园
    Java基础--序列化和反序列化
    Java面试题2017
    固定布局,流动布局,弹性布局
    viewport
    索引
    Java虚拟机
  • 原文地址:https://www.cnblogs.com/zhangyublogs/p/5481124.html
Copyright © 2020-2023  润新知