unix PS命令和JPS命令的区别

一、JPS介绍java

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

    使用jps时,若是没有指定hostid,它只会显示本地环境中全部的Java进程;若是指定了hostid,它就会显示指定hostid上面的java进程,不过这须要远程服务上开启了jstatd服务,能够参看前面的jstatd章节来启动jstad服务。服务器

 

二、命令格式app

jps [ options ] [ hostid ]jvm

 

三、经常使用参数说明socket

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

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

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

-v 输出传给JVM的参数。进程

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

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

 

四、服务器标识

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

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

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

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

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

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

 

五、使用示例

5.一、列出本地的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.二、列出远程的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去查找特定的进程,而后再对特定的进程进行操做

相关文章
相关标签/搜索