一、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 |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去查找特定的進程,而後再對特定的進程進行操做