jps es una herramienta de Java, incluida en el JDK, que permite monitorear el estado de los procesos corriendo en una máquina virtual Java. Es una especie de ps exclusivo para procesos Java.

jps lista información de procesos Java sobre un host especificado como parámetro (opcional). Esta herramienta está limitada a reportar información acerca de las máquinas virtuales Java para las cuales tiene permisos de acceso.

Cuando se corre jps sin parámetros, lista los procesos Java corriendo en el host local.

En la salida reporta el ID de máquina virtual (el cual típicamente coincide con el ID de proceso asignado por el sistema operativo) junto con el nombre corto de la clase de la aplicación o nombre de archivo .jar:

[root@glassfish ~]# jps
8863 ASMain
11622 Jps

Si se utiliza la opción -m, lista además los argumentos pasados al método principal:

[root@glassfish ~]# jps -m
8863 ASMain -domainname localdomain -asadmin-args --host,,,localhost,,,--port,,,1234,,,--secure=false,,,--terse=false,,,--echo=false,,,--interactive=false,,,start-domain,,,--verbose=false,,,--debug=false,,,--domaindir,,,/usr/local/glassfish/domains,,,localdomain -instancename server -verbose false -debug false -asadmin-classpath /usr/local/glassfish/glassfish/modules/admin-cli.jar -asadmin-classname com.sun.enterprise.admin.cli.AsadminMain -upgrade false -type DAS -domaindir /usr/local/glassfish/domains/localdomain -read-stdin true
11636 Jps -m

Con la opción -l es posible listar el nombre completo de la clase de la aplicación o la ruta completa al archivo .jar:

[root@glassfish ~]# jps -l
8863 com.sun.enterprise.glassfish.bootstrap.ASMain
11651 sun.tools.jps.Jps

Finalmente, la opción -v permite obtener la lsita de argumentos pasados a la máquina virtual Java (JVM):

[root@glassfish ~]# jps -v
8863 ASMain -XX:+UnlockDiagnosticVMOptions -XX:+PrintClassHistogram -XX:+UseConcMarkSweepGC -XX:MaxPermSize=256M -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSClassUnloadingEnabled -XX:+UseParNewGC -XX:+PrintGCDateStamps -XX:PermSize=256M -XX:+PrintGCDetails -XX:MaxNewSize=512M -XX:NewSize=512M -XX:NewRatio=2 -XX:+UseCMSCompactAtFullCollection -Xmx3G -Xms3G -Xloggc:/home/glassfish/gc.log -javaagent:/usr/local/glassfish/lib/monitor/flashlight-agent.jar -Dfelix.fileinstall.disableConfigSave=false -Dproduct.name -Dsun.jnu.encoding=Cp1252 -Djava.awt.headless=true -Dfelix.fileinstall.poll=5000 -Djava.endorsed.dirs=/usr/local/glassfish/modules/endorsed:/usr/local/glassfish/lib/endorsed -Djava.net.preferIPv4Stack=true -Dfelix.fileinstall.bundles.startTransient=true -Djavax.net.ssl.trustStore=/usr/local/glassfish/domains/localdomain/c
11665 Jps -Dapplication.home=/usr/local/jdk1.7.0_51 -Xms8m

Tener en cuenta que esta aplicación no tiene soporte y puede no estar disponible en futuras versiones de Java. La documentación de Java versión 8 recomienda puntualmente no escribir scripts que hagan uso de la salida de esta herramienta ya que puede cambiar a futuro.

En sistemas operativos de la familia Unix, es posible utilizar en cambio el comando:

# ps aux | grep "[j]ava"

Este fue el último artículo del año 2016. Screw you guys, I'm going home!

Referencias

man jps

jps - Java Virtual Machine Process Status Tool

jps - Java 8


Tal vez pueda interesarte


Compartí este artículo