Sign up ×

I'm just curious. The man page for kill says that QUIT, aka signal # 3, is a "core" signal. It seems that all it does, for Java processes, is dump the thread information. So, is the QUIT as misnomer? Is it just that the JVM implements a singal 3 handler that dumps threads?

share|improve this question
Yeah, QUIT is a misnomer. As @Will said, Sun just decided to make signal 3 dump the threads. –  Gray Aug 14 '12 at 21:20

2 Answers 2

up vote 5 down vote accepted

QUIT is arguably a misnomer for Java. But by that argument any signal name could be a misnomer if an application is allowed to change the default behaviour of the signal's handler.

In reality, the correspondence between UNIX signal names and what they actually do has always been a bit vague and tenuous. However, developers have been dealing with this "issue" for 30+ years without it being a real problem.

And yes, the Java thread stack dump behaviour is implemented by the JVM. The default UNIX / LINUX behaviour is to create a memory dump of the process, unless this is inhibited by other factors.

share|improve this answer

Yea, the JVM captures the #3 signal to dump threads. By default, for a normal unix process, it dumps core (i.e. take a memory snapshot of the process and write it to a file) and exits.

For Java, that isn't very helpful, so it does a thread dump instead.

share|improve this answer

Your Answer


