kill -3 pid
linux 下不同应用的响应行为不太一样,对jvm来说默认会在标准输出显示出来
可以通过 >重定向到文件。
$ jps
20226 jar
20383 Jps
$ kill -3 20226
2018-08-30 13:09:04
Full thread dump OpenJDK 64-Bit Server VM (25.181-b13 mixed mode):
"TimerQueue" #23 daemon prio=5 os_prio=0 tid=0x00007fa70c04f000 nid=0x4f1e waiting on condition [0x00007fa72056d000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000076d530c48> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.DelayQueue.take(DelayQueue.java:211)
at javax.swing.TimerQueue.run(TimerQueue.java:174)
at java.lang.Thread.run(Thread.java:748)
"DestroyJavaVM" #22 prio=5 os_prio=0 tid=0x00007fa79400a800 nid=0x4f03 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"AWT-EventQueue-0" #17 prio=6 os_prio=0 tid=0x00007fa79461b800 nid=0x4f19 waiting on condition [0x00007fa7222e7000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000006c6201be0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.awt.EventQueue.getNextEvent(EventQueue.java:554)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:187)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
......