Vérifiez les processus Java sous Linux avec la commande jps
Avec de nombreux processus exécutés sur un système, il est utile de disposer d'un moyen rapide d'identifier uniquement Java avec la commande jps.
Sous Linux, il existe des commandes pour afficher les processus en cours d'exécution sur votre système. Un processus est tout événement en cours géré par le noyau. Un processus est généré lorsque vous lancez une application, mais de nombreux autres processus s'exécutent également en arrière-plan de votre ordinateur, notamment des programmes permettant de conserver l'heure exacte de votre système, de surveiller les nouveaux systèmes de fichiers, d'indexer les fichiers, etc. Les utilitaires, tels que ceux inclus dans le package procps-ng, qui surveillent ces processus ont tendance à être intentionnellement génériques. Ils examinent tous les processus sur votre ordinateur afin que vous puissiez filtrer la liste en fonction de ce que vous devez savoir.
Sous Linux, vous pouvez afficher les processus avec la commande ps
. C'est le moyen le plus simple de visualiser les processus en cours sur votre système.
$ ps
PID TTY TIME CMD
4486 pts/0 00:00:00 bash
66930 pts/0 00:00:00 ps
Vous pouvez utiliser la commande ps
pour afficher les processus Java en cours d'exécution sur un système également en redirigeant la sortie vers grep
.
$ 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, cependant, possède son propre moniteur de processus spécifique. L'outil Java Virtual Machine Process Status (jps) vous permet d'analyser chaque instance en cours d'exécution de la machine virtuelle Java (JVM) sur votre système.
Pour afficher une sortie similaire à celle vue dans la commande ps
, utilisez l'option -v
. Ceci est utile, en partie parce que cela nécessite moins de saisie.
$ 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
La sortie jps
par défaut fournit l'identifiant du processus et le nom de classe ou le nom de fichier Jar de chaque instance détectée.
$ jps
67604 jboss-modules.jar
69430 Jps
Remarque : La page de manuel de jps
indique qu'il est expérimental et non pris en charge. Il s’agit néanmoins d’une option intéressante, car de nombreux processus s’exécutent souvent sur un système et il est utile de disposer d’un moyen rapide d’identifier uniquement Java.
Java étant toujours un langage populaire aujourd'hui, il reste important de se familiariser avec le kit de développement Java et l'environnement d'exécution. Ils contiennent de nombreux outils applicables au développement et à la maintenance d'applications Java.