script linux pour tuer le processus java


Je veux que le script linux tue le programme java en cours d'exécution sur la console.

Voici le processus en cours d'exécution en tant que jar.

[rapp@s1-dlap0 ~]$ ps -ef |grep java
rapp    9473    1  0 15:03 pts/1    00:00:15 java -jar wskInterface-0.0.1-SNAPSHOT-jar-with-dependencies.jar
rapp   10177  8995  0 16:00 pts/1    00:00:00 grep java
[rapp@s1-dlap0 ~]$
Author: d-man, 2012-12-05

4 answers

, Vous pouvez simplement utiliser pkill -f comme ceci:

pkill -f 'java -jar'

EDIT: {[7] } Pour tuer un processus java particulier exécutant votre jar spécifique, utilisez cette commande pkill basée sur regex:

pkill -f 'java.*lnwskInterface'
 74
Author: anubhava, 2012-12-05 17:00:50

Si vous voulez juste tuer tous les processus java, alors tout ce dont vous avez besoin est;

killall java

Si, cependant, vous voulez tuer le processus wskInterface en particulier, alors vous êtes la plupart du temps là-bas, il vous suffit de supprimer l'id du processus;

PID=`ps -ef | grep wskInterface | awk '{ print $2 }'`
kill -9 $PID

Devrait le faire, il y a probablement un moyen plus facile cependant...

 31
Author: lynks, 2012-12-04 21:08:56

Utilisez jps pour répertorier les processus java en cours d'exécution. La commande renvoie l'id de processus avec la classe principale. Vous pouvez utiliser la commande kill pour tuer le processus avec l'id retourné ou utiliser un script de ligne suivant.

kill $(jps | grep <MainClass> | awk '{print $1}')

MainClass est une classe de votre programme java en cours d'exécution qui contient la méthode main.

 0
Author: Pawan, 2017-09-08 20:02:44

Pkill-f pour une raison quelconque ne fonctionne pas pour moi. Quoi que cela fasse, il semble très difficile de parcourir ce que ps aux me montre clairement.

Après un après-midi de jurons, je suis allé mettre ce qui suit dans mon script de démarrage:

(ps aux | grep -v -e 'grep ' | grep MainApp | tr -s " " | cut -d " " -f 2 | xargs kill -9 ) || true

 0
Author: Jilles van Gurp, 2018-05-30 14:47:59