Y at-il un moyen d'arrêter un programme java en cours d'exécution en utilisant un script shell en connaissant le nom alone.I je utilise shell kshShell script pour arrêter un programme java
Répondre
Ajoutez une propriété unique à la machine virtuelle Java pour l'identifier facilement, par ex. pour Test.class
java -Duniquename=1 test
pour le tuer:
ps ax | grep uniquename | grep -v grep | awk '{print $1}' | xargs kill
Vous pouvez utiliser pkill:
pkill your_java_program_name
Cela fonctionnerait si vous exécutez seulement une instance de votre programme est en cours d'exécution.
Vous pouvez utiliser jps identifiant l'ID de processus associé au nom du programme Java démarré (jps est un gestionnaire de processus pour les programmes Java). Avec cet identifiant, vous pouvez tuer le processus normalement.
en supposant que mon nom de fichier java est test.java et est en cours d'exécution comment le trouver? – Harish
+1 pour m'avoir présenté à jps :) – sfussenegger
@Harish: Après l'avoir compilé et exécuté, il sera affiché comme 'test'. Si vous l'empaquetez dans un fichier jar exécutable (test.jar) et exécutez via java -jar test.jar, jps affiche 'test.jar'. – Mnementh
suivi Mnementh' suggestion:
cela devrait faire le travail
jps -l | grep org.example.MyMain | cut -d ' ' -f 1 | xargs -rn1 kill
jps -l
: liste java pro cess avec "nom du package complet pour la classe principale de l'application ou le nom du chemin d'accès complet au fichier JAR de l'application".grep
: choisissez le processus que vous aimezcut -d -' ' -f 1
: diviser la sortie dans les colonnes à l'aide delimiter '' et imprimer uniquement la première (le pid)xargs -rn1 kill
: exécuter kill pour chaque PID (le cas échéant)
Notez que vous devez exécuter JPS et xargs avec le même utilisateur (ou root) que vous utilisez le processus
+1 pour chaque' wow 'que j'ai dit sur chaque ligne.:) – Nishant
Cela fonctionnera également pour les machines Windows, mais vous aurez besoin de faire une détection de l'environnement pour déterminer quel 'kill' utiliser. –
@Odelya Je viens d'ajouter '-r' (' --no-run-if-empty') à 'xargs' pour éviter cette erreur. – sfussenegger
vous pouvez utiliser l'option -o de ps pour formater votre sortie,
ps -eo cmd,pid | awk '!/awk/&&/mycommand/{cmd="kill -9 "$2;system(cmd)}'
- 1. Dois-je créer Linux Shell Script ou un programme Java?
- 2. Appeler un script shell d'un programme java avec
- 3. Script shell pour test
- 4. Appelez un script shell dans Java?
- 5. commande shell pour redémarrer un programme php
- 6. Appel de tâches java consécutives dans un script shell
- 7. Script shell pour tester le programme de ligne de commande
- 8. Arrêter un script jQuery
- 9. exécuter un programme Java
- 10. Comment appeler un script shell à partir du programme PLSQL
- 11. Un script shell "try"
- 12. Écrire un script shell wrapper pour awk
- 13. Shell script pour le Web
- 14. Joli-print pour script shell
- 15. comment écrire un script shell pour obtenir la version JRE
- 16. pouvons-nous trouver un script shell dans le script Perl?
- 17. Passage du deuxième argument d'un script shell à Java
- 18. script shell non exécuté
- 19. Script shell de débogage dans IntelliJ 9
- 20. Shell script pour traiter les fichiers
- 21. Arrêter l'exécution du script python quand script shell Bash parent est tué
- 22. Comment lancer un script shell en PHP?
- 23. Script shell pour calculer le temps écoulé
- 24. script shell passant sous-ensemble d'arguments
- 25. Plusieurs commandes sur une machine distante utilisant un script shell
- 26. appel perl sous-programme dans le script shell
- 27. Script shell pour importer le fichier de vidage mysql
- 28. L'appel d'un script shell à partir de Java se bloque
- 29. script shell + calculer réseau IP par script shell
- 30. Comment arrêter l'exécution du programme Java à partir de la ligne de commande?
Savoir quel nom? Si vous connaissez le nom de l'exécutable (qui est normalement 'java'),' killall' est votre ami. – sfussenegger
@sfussenegger: Probablement, il ne veut pas tuer tous les processus Java, mais seulement un spécifique. – Mnementh
@Mnementh c'est ce que j'attendrais aussi, mais d'après les informations données c'est la meilleure chose que je pourrais recommander. – sfussenegger