Linux中國

在 Linux 上使用 jps 命令檢查 Java 進程

在 Linux 中,有一些用於查看系統上運行進程的命令。進程是指由內核管理的正在進行的事件。每啟動一個應用程序時,就會產生一個進程,但也有許多在計算機後台運行的進程,如保持系統時間準確的進程、監聽新文件系統的進程、索引化文件的進程等。有一些可以用來監測這些進程的實用程序,比如包含在 procps-ng 包 中的程序,但它們往往都是對各種進程通用的。它們會查看計算機上的所有進程,你可以根據需要過濾結果列表。

在 Linux 中,可以通過 ps 命令查看進程。這是查看當前系統上運行進程最簡單的方法。

$ ps
    PID TTY          TIME CMD
   4486 pts/0    00:00:00 bash
  66930 pts/0    00:00:00 ps

你也可以通過 ps 命令,並配合結果輸出管道符進行 grep,從而查看系統上運行的 Java 進程,。

$ ps ax |grep java
  67604 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 有自己專屬的進程監視器。 Java 虛擬機進程狀態 Java Virtual Machine Process Status (jps)工具可以幫你掃描系統上所有運行的 Java 虛擬機(JVM)實例。

要想實現與 ps 命令類似的輸出,可以使用 -v 選項。這很實用,這與 ps 相比,可以減少你的輸入。

$ jps -v
67604 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 命令的默認輸出包含進程標識符,類名或 Jar 文件名。

$ jps
67604 jboss-modules.jar
69430 Jps

注意: jps 的手冊頁指出此命令是試驗性且不受支持的。儘管如此,它仍然是一個不錯的選擇,因為一個系統通常運行著許多進程,這種只識別 Java 進程的快速方法是很有用的。

當下的 Java 仍然是一種流行的語言,所以熟悉 Java 開發工具包和運行時環境仍然很重要。它們包含著許多適用於 Java 應用程序開發和維護的工具。

via: https://opensource.com/article/21/10/check-java-jps

作者:Alan Formy-Duval 選題:lujun9972 譯者:unigeorge 校對:turbokernel

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國