Vérifier les processus en cours d'exécution java
Je veux écrire une application java qui doit être déployé sur une machine unix. J'ai besoin de vérifier les processus en cours d'exécution - qui sont en cours d'exécution sur la boîte. Quelqu'un pourrait-il me montrer un exemple de /me pointer dans la bonne direction?
- java.lang.ProcessBuilder + ps
- Que voulez-vous dire "vérifier les processus en cours d'exécution"? Quelles sont les informations à propos du processus de avez-vous besoin exactement?
- Avez-vous essayé de googler "Comment vérifier les processus en cours d'exécution de linux"
- C'est bien, mais on m'a dit que j'aurais besoin d'avoir un externe .sh fichier appelé par java, parce que si java vérifie elle finira par s'accumuler et a couru hors de la mémoire. Je ne sais pas pourquoi ma question a été marquée soit. De toute façon, je veux juste vérifier si une application particulière(s) est en cours d'exécution sur la boîte, rien de plus.
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez trouver de l'exécution de java processus, vous pouvez utiliser
ps -ef | grep java
Si vous avez besoin de vérifier quels sont les ports en cours d'utilisation,
netstat -tupln
Je suis tombé sur quelques solutions de rechange pour
ps aux | grep java
fournies par Java qui ont besoin de moins de taper:et
L'option
-v
montrera les arguments passés à la JVM.Si vous obtenez processus de l'information non disponible ce pourrait être parce que le processus est exécuté avec OpenJDK.
Si vous êtes root, et le processus a commencé avec un utilisateur non root, vous pouvez utiliser la commande suivante pour afficher les détails (remplacer
<user>
avec le nom d'utilisateur):Une autre fonctionnalité intéressante de
jcmd
est que vous pouvez afficher la version de Java que d'un processus spécifique utilise (dans le casps aux | grep java
ne l'affiche pas), c'est comment je suis tombée sur deux (remplacer<pid>
avec l'id de processus):