CentOS 5.9
Si corro, kill -3 <java process pid>
¿qué sucede realmente? segúneste artículo de sombrero rojo, Entiendo que se genera un Java Thread Dump pero ¿se finaliza el proceso? No parece estar basado en mis pruebas:
[root@foobox ~]# kill -3 14559
[root@foobox ~]# service foo status
foo (pid 14559) is running...
En otras palabras: ¿podría recopilar un volcado de subprocesos de esta manera sin afectar el servicio?
Respuesta1
Con suerte, kill -3
no finaliza el proceso JVM.
Un volcado de subprocesos tiene un impacto muy leve en el servicio durante la recopilación del seguimiento de pila, especialmente si se están ejecutando miles de subprocesos.
Tenga en cuenta que si -Xrs
se utiliza el indicador, la JVM ya no manejará específicamente la SIGQUIT
señal y entonces esa señal probablemente terminará el proceso a menos que exista un controlador alternativo en algún código nativo.
Respuesta2
https://superuser.com/questions/352147/what-does-kill-3-meanpuede proporcionarle más información.
Depende del proceso determinar cómo reaccionará exactamente cuando recibaSIGQUIT
Dado que esa señal puede ser captada, ignorada o bloqueada por el proceso, es posible que no respete el archivo kill
. Si desea mirar aún más de cerca, le sugiero que rastree el PID strace
mientras lo envía SIGQUIT
con kill.