web-dev-qa-db-fra.com

script linux pour tuer le processus Java

Je veux que le script linux tue le programme Java qui tourne 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 ~]$
39
d-man

Vous pouvez simplement utiliser pkill -f comme ceci:

pkill -f 'Java -jar'

EDIT: Pour tuer un processus Java particulier exécutant votre jar spécifique, utilisez cette commande pkill basée sur une expression régulière:

pkill -f 'Java.*lnwskInterface'
81
anubhava

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

killall Java

Si, toutefois, vous souhaitez supprimer le processus wskInterface en particulier, la plupart du temps, vous devez simplement 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 ...

34
lynks

Utilisez jps pour répertorier les processus Java en cours d’exécution. La commande retourne l'identifiant du processus avec la classe principale. Vous pouvez utiliser la commande kill pour tuer le processus avec l'ID retourné ou utiliser le script suivant à la ligne.

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
Pawan

pkill -f pour une raison quelconque ne fonctionne pas pour moi. Quoi qu’il en soit, il semble très difficile de passer en revue ce que ps aux me montre clairement.

Après un après-midi de jure, je suis allée mettre le texte suivant dans mon script de départ:

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

0
Jilles van Gurp