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仮想マシンプロセスステータス(jps)ツールを使用すると、システム上で実行中のJava仮想マシン(JVM)の各インスタンスをスキャンできます。
ps
に表示されるのと同様の出力を表示するには コマンド、-v
を使用します オプション。これは、タイピングが少なくて済むという理由もあり、便利です。
$ 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
Javaの詳細
- エンタープライズJavaプログラミングとは何ですか?
- OpenJDKのRedHatビルド
- Javaチートシート
- 無料のオンラインコース:マイクロサービスアーキテクチャを使用したクラウドネイティブアプリケーションの開発
- 新鮮なJavaの記事
注: jps
のマニュアルページ それは実験的でサポートされていないと述べています。それでも、多くのプロセスがシステム上で実行されていることが多く、Javaのみをすばやく識別する方法があると便利なので、これは便利なオプションです。
Javaは今日でも人気のある言語であるため、JavaDevelopmentKitとランタイム環境に精通していることが重要です。これらには、Javaアプリケーションの開発と保守に適用できる多くのツールが含まれています。