¿Existe una manera de detener un programa Java se ejecuta utilizando un script de shell conociendo los nombres de alone.I estoy usando shell kshShell script para detener un programa java
Respuesta
Agregue una propiedad única a la JVM para identificarla fácilmente, p. para Test.class
java -Duniquename=1 test
para matarlo:
ps ax | grep uniquename | grep -v grep | awk '{print $1}' | xargs kill
Puede utilizar pkill:
pkill your_java_program_name
Esto funcionaría si ejecuta solo una instancia de su programa en ejecución.
Puede usar jps identificando el id de proceso asociado con el nombre del programa java iniciado (jps es un gestor de proceso para los programas java). Con esta identificación, puedes matar el proceso normalmente.
asumiendo que mi nombre de archivo java es test.java y se está ejecutando cómo encontrarlo? – Harish
+1 por presentarme a jps :) – sfussenegger
@Harish: después de compilarlo y ejecutarlo se mostrará como 'prueba'. Si lo empaqueta en un archivo ejecutable (test.jar) y lo ejecuta a través de 'java -jar test.jar', jps muestra 'test.jar'. – Mnementh
seguimiento de Mnementh' suggestion:
esto debe hacer el trabajo
jps -l | grep org.example.MyMain | cut -d ' ' -f 1 | xargs -rn1 kill
jps -l
: Lista de java Pro con "nombre completo del paquete para la clase principal de la aplicación o el nombre completo de la ruta al archivo JAR de la aplicación".grep
: elegir el proceso te gustacut -d -' ' -f 1
: dividir la salida en columnas utilizando delimitador '' e imprimir sólo la primera (PID)xargs -rn1 kill
: ejecución de interrupción para cada PID (si lo hay)
nota que debe ejecutar JPS y xargs con el mismo usuario (o raíz) que se está ejecutando el proceso de
+1 por cada' wow 'que dije en cada línea.:) – Nishant
Esto también funcionará para las máquinas de Windows, pero vas a necesitar hacer un poco de detección de entorno para descubrir qué 'matar' usar. –
@Odelya Acabo de agregar '-r' (' --no-run-if-empty') a 'xargs' para evitar este error. – sfussenegger
puede utilizar la opción -o de PS para dar formato a la salida,
ps -eo cmd,pid | awk '!/awk/&&/mycommand/{cmd="kill -9 "$2;system(cmd)}'
- 1. Crear un script de shell para ejecutar el programa Java
- 2. cómo usar un script de shell para supervisar un programa?
- 3. ¿Cómo ejecutar un script de shell interactivo usando java Runtime?
- 4. Getopt multiplataforma para un script de shell
- 5. Cómo ejecuto un programa dentro de un script de shell y hago que el script de shell continúe, aunque el programa permanezca abierto
- 6. Proceso de eliminación en Shell Script
- 7. Shell script shebang para ruta desconocida
- 8. Shell script para ejecutar procesos múltiples
- 9. ¿Cómo ejecutar un script de shell Unix desde código Java?
- 10. Prueba de un script de shell bash
- 11. Incrustar un ejecutable binario en un script de shell
- 12. Cómo iniciar y detener un daemon de shell desde Ruby
- 13. ¿Cómo puedo averiguar qué script, programa o shell ejecutó mi script de Perl?
- 14. ¿Cómo detener la ejecución del programa Java desde la línea de comandos?
- 15. Shell script "para" la sintaxis del bucle
- 16. shell script de error de detención
- 17. Prueba de script Shell
- 18. Pretty-print para script de shell
- 19. ¿Cómo hacer un script de shell global?
- 20. script de shell: if
- 21. Detener el programa SAS Error
- 22. ¿Cómo se usa quicklisp cuando se invoca el programa CL como un script de shell?
- 23. ¿Qué significa $ @ en un script de shell?
- 24. Telnet dentro de un script de shell
- 25. ¿Es posible hacer que un script bash shell interactúe con otro programa de línea de comando?
- 26. ¿Diferencia entre un script y un programa?
- 27. ¿Cómo puedo redireccionar stdin desde un script de shell a un comando en el script de shell?
- 28. Pasando el segundo argumento en adelante desde un script de shell a Java
- 29. Cómo llamar a un script de shell desde el programa PLSQL
- 30. Detener un hilo en Java?
Saber qué nombre? Si conoce el nombre del ejecutable (que normalmente es 'java'),' killall' es su amigo. – sfussenegger
@sfussenegger: Probablemente él no quiere matar a todos los procesos de java, pero solo uno específico. – Mnementh
@Mnementh eso es lo que esperaría también, pero a partir de la información dada, esto es lo mejor que podría recomendar. – sfussenegger