在 Linux 上使用 jps 命令檢查 Java 進(jìn)程
系統(tǒng)上運(yùn)行著諸多進(jìn)程,通過(guò)
jps命令能夠快速有效識(shí)別 Java 進(jìn)程。
在 Linux 中,有一些用于查看系統(tǒng)上運(yùn)行進(jìn)程的命令。進(jìn)程是指由內(nèi)核管理的正在進(jìn)行的事件。每啟動(dòng)一個(gè)應(yīng)用程序時(shí),就會(huì)產(chǎn)生一個(gè)進(jìn)程,但也有許多在計(jì)算機(jī)后臺(tái)運(yùn)行的進(jìn)程,如保持系統(tǒng)時(shí)間準(zhǔn)確的進(jìn)程、監(jiān)聽(tīng)新文件系統(tǒng)的進(jìn)程、索引化文件的進(jìn)程等。有一些可以用來(lái)監(jiān)測(cè)這些進(jìn)程的實(shí)用程序,比如包含在 procps-ng 包 中的程序,但它們往往都是對(duì)各種進(jìn)程通用的。它們會(huì)查看計(jì)算機(jī)上的所有進(jìn)程,你可以根據(jù)需要過(guò)濾結(jié)果列表。
在 Linux 中,可以通過(guò) ps 命令查看進(jìn)程。這是查看當(dāng)前系統(tǒng)上運(yùn)行進(jìn)程最簡(jiǎn)單的方法。
$ psPID TTY TIME CMD4486 pts/0 00:00:00 bash66930 pts/0 00:00:00 ps
你也可以通過(guò) ps 命令,并配合結(jié)果輸出管道符進(jìn)行 grep,從而查看系統(tǒng)上運(yùn)行的 Java 進(jìn)程,。
$ ps ax |grep java67604 pts/1 Sl+ 0:18 /usr/lib/jvm/java-11-openjdk-11.0.12.0.7-4.fc34.x86_64/bin/java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.management/javax.management=ALL-UNNAMED --add-opens=java.naming/javax.naming=ALL-UNNAMED -Dorg.jboss.boot.log.file=/home/alan/wildfly/24.0.1/standalone/log/server.log -Dlogging.configuration=file:/home/alan/wildfly/24.0.1/standalone/configuration/logging.properties -jar /home/alan/wildfly/24.0.1/jboss-modules.jar -mp /home/alan/wildfly/24.0.1/modules org.jboss.as.standalone -Djboss.home.dir=/home/alan/wildfly/24.0.1 -Djboss.server.base.dir=/home/alan/wildfly/24.0.1/standalone
然而,OpenJDK 有自己專屬的進(jìn)程監(jiān)視器。Java 虛擬機(jī)進(jìn)程狀態(tài)(jps)工具可以幫你掃描系統(tǒng)上所有運(yùn)行的 Java 虛擬機(jī)(JVM)實(shí)例。
要想實(shí)現(xiàn)與 ps 命令類似的輸出,可以使用 -v 選項(xiàng)。這很實(shí)用,這與 ps 相比,可以減少你的輸入。
$ jps -v67604 jboss-modules.jar -D[Standalone] -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.management/javax.management=ALL-UNNAMED --add-opens=java.naming/javax.naming=ALL-UNNAMED -Dorg.jboss.boot.log.file=/home/alan/wildfly/24.0.1/standalone/log/server.log -Dlogging.configuration=file:/home/alan/wildfly/24.0.1/standalone/configuration/logging.properties
jps 命令的默認(rèn)輸出包含進(jìn)程標(biāo)識(shí)符,類名或 Jar 文件名。
$ jps67604 jboss-modules.jar69430 Jps
注意: jps 的手冊(cè)頁(yè)指出此命令是試驗(yàn)性且不受支持的。盡管如此,它仍然是一個(gè)不錯(cuò)的選擇,因?yàn)橐粋€(gè)系統(tǒng)通常運(yùn)行著許多進(jìn)程,這種只識(shí)別 Java 進(jìn)程的快速方法是很有用的。
當(dāng)下的 Java 仍然是一種流行的語(yǔ)言,所以熟悉 Java 開(kāi)發(fā)工具包和運(yùn)行時(shí)環(huán)境仍然很重要。它們包含著許多適用于 Java 應(yīng)用程序開(kāi)發(fā)和維護(hù)的工具。















 
 
 



 
 
 
 