Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

CentOS 5.9

If I run kill -3 <java process pid> what actually happens? As per this red hat article, I understand that a Java Thread Dump is generated but is the process terminated? It doesn't appear to be based on my tests:

[root@foobox ~]# kill -3 14559

[root@foobox ~]# service foo status
foo (pid 14559) is running...

In other words: could I collect a thread dump via this manner without impacting the service?

share|improve this question
1  
Yes, you could. – Paul Draper Jun 30 '14 at 6:14
up vote 4 down vote accepted

Hopefully, kill -3 doesn't terminate the JVM process.

A thread dump is very slightly impacting the service during the stacktrace collection, especially if thousands of threads are running.

Note that if the -Xrs flag is used, the JVM no more specifically handle the SIGQUIT signal and then that signal will likely terminate the process unless a alternate handler is in place in some native code.

share|improve this answer

http://superuser.com/questions/352147/what-does-kill-3-mean may provide with you some more information.

It's up to the process to determine how exactly it's going to react when it receives SIGQUIT

Since that signal can be caught, ignored, or blocked by the process it may not respect the kill. If you want like to peer even closer I suggest stack tracing the PID with strace while sending it SIGQUIT with kill.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.