Trouver le pid d'un processus java sous Linux
Bonjour, je suis en utilisant MPJ de la bibliothèque dans un programme en java pour l'algorithme Pagerank.
Je le compiler
javac -cp .:$MPJ_HOME/lib/mpj.jar MpiPageRank.java
et géré par
mpjrun.sh -np 2 MpiPageRank
où -np
est le nombre de processus
Maintenant, je dois trouver son pid
ps -ef|grep java
comme
mpjrun.sh -np 2 MpiPageRank & sleep 2
ps -ef | grep java
- Je obtenir
pnewaska 27866 27837 99 21:28 pts/45 00:00:09 java -cp /u/pnewaska/mpj-v0_38/lib/smpdev.jar:/u/pnewaska/mpj-v0_38/lib/xdev.jar:/u/pnewaska/mpj-v0_38/lib/mpjbuf.jar:/u/pnewaska/mpj-v0_38/lib/loader2.jar:/u/pnewaska/mpj-v0_38/lib/starter.jar:/u/pnewaska/mpj-v0_38/lib/mpiExp.jar runtime.starter.MulticoreStarter /nfs/nfs1/home/pnewaska/DistributedSystems/Project3 10 smpdev useLocalLoader EMPTY MpiPageRank -i input.500k0 -n 10 -o
Maintenant je veux extraire MpiPageRank
à partir de seulement 1 linux comman pour obtenir son pid ie 27866
.
comment dois-je faire ?
source d'informationauteur Shweta B. Patil | 2012-04-18
Vous devez vous connecter pour publier un commentaire.
à l'aide de
ps
ps
permet à l'utilisateur de définir son propre mise en forme pour sa sortie avec le-o
interrupteur, et-C
pour sélectionner les entrées par la commande donnée. Je voudrais aller avec:à partir de la page de man:
On peut obtenir des résultats plus précis en précisant davantage de restrictions (c'est à dire que l'utilisateur sous lequel le processus s'exécute, etc). Regardez la page de manuel pour plus d'informations et d'autres commutateurs.
exemple:
l'aide de l'environnement
Je ne sais pas pourquoi vous utilisez un
.sh
script à exécuter votre code et de ne pas appelerjava
directement, mais en tout cas, vous utilisez le&
(arrière-plan) de l'opérateur, vous pouvez saisir lepid
par le biais de votre shell, avec la$!
variable.par exemple:
en va de même pour la
java -jar .. &
commande,$!
sera fixé pour le pid de la dernière backgrounded travail.Vous pouvez utiliser awk pour obtenir le pid:
J'ai remarqué que, parfois, grep lui-même se trouve, pour l'enlever:
jps est le même que le ps, sauf qu'elle ne regarde que les processus java.
Si vous avez alors besoin de la PID, vous pouvez faire quelque chose comme ce qui suit:
Qui s'exécute jps, puis utilise grep pour filtrer en fonction de l'application java ou un bocal que vous voulez tuer. Après cela, awk capture et imprime tout le pid de la console.