Estoy trabajando en un código computacionalmente pesado que, por ahora, se bloquea mucho, pero todavía estoy trabajando en él :) Cuando se bloquea, no puedo cerrar la ventana de la GUI; Tengo que abrir un shell y matar -9 el proceso.
Es un proceso de Java y es fácil de encontrar:
nkint@zefiro:~$ ps aux | grep java
nkint 2705 16.6 1.0 460928 43680 ? Sl 12:23 0:08 /usr/lib/jvm/java-6-sun-1.6.0.26/bin/java -Djava.library.path=something something
nkint 2809 0.0 0.0 4012 776 pts/0 S+ 12:24 0:00 grep --color=auto java
nkint@zefiro:~$ kill -9 2705
Ahora es fácil pero una tarea bastante mecánica. Entonces, normalmente espero que se bloqueen entre 7 y 8 procesos, y luego kill -9
cada uno de ellos.
Quiero hacer esto de forma automática. Creo que debería ser fácil canalizar algunos comandos para tomar la identificación de los resultados (n-1) ps aux | grep java
y matarlos, pero no tengo idea de por dónde empezar.
¿Alguien puede darme alguna pista?
killall java
no estaba funcionando para mí por alguna razón aleatoria que no pude resolver. El-9
parámetro se encargó de eso. Gracias.java
.Abra un editor de texto y guarde este breve script bash en su directorio de inicio como 'killjava'
Luego
chmod u+x ~/killjava
en un terminal para que pueda ejecutar el archivo.Luego puede llamar
~/killjava
desde una terminal y su proceso Java estará completamente muerto. Es posible que desee considerar qué otros recursos afectará su destrucción del proceso Java de esta manera (como las conexiones de la base de datos). Por ejemplo, tal vezkill -15
sería más apropiado: vea la explicación aquí .fuente
Aquí hay un enfoque alternativo, basado en la respuesta anterior de @ Dean.
Esto usa jps para identificar el proceso de Java.
MainClass es una clase en su programa Java en ejecución que contiene el método principal.
fuente