2014-02-19 16 views
0

Запуск kill -QUIT в системе Unix вызовет сброс потока. Я знаю это, потому что я это делал сотни раз.«убивает -QUIT» когда-либо убивает JVM?

Однако другой разработчик говорит, что он видел это «сбой JVM» и использование twiddle или JMX API «безопаснее».

Я изо всех сил пытаюсь найти любые ссылки в Интернете по адресу kill -QUIT, веду себя таким образом.

Может ли кто-нибудь подтвердить, что он может фактически убить процесс java/заставить JVM выйти?

(Очевидно, один из способов для того, чтобы сделать это было бы, если кто-то не правильно ввести «-quit» :-))

+0

Я полагаю, что другая возможность заключалась бы в том, что если бы JVM активно боролся за ресурс, он, возможно, не смог создать ниспадающий поток. Но в этом случае JMX/Twiddle даст тот же результат. –

ответ

2

В 12 лет я никогда не видел kill -QUIT обрушить JVM. Но, как говорит Disco 3, если вы делаете дамп потока, в то время как JVM находится в бедственном положении (это когда вы обычно делаете дампы потоков), он может (возможно?) Сбой с OutOfMemoryError. Но ничего может привести к аварии JVM в этой ситуации. Я бы без колебаний использовал kill -QUIT, но вы можете найти jstack более полезным, потому что он сбросит дамп потока до вашего stdout, а не JVM.