Как отправить сигнал в JVM, созданный с помощью вызова JNI_CreateJavaVM?
-
20-09-2019 - |
Вопрос
Есть ли какая-либо возможность, что я могу напрямую отправить сигнал на виртуальную машину Java, которая создается путем вызова JVM_CreateJavavm
в собственном коде C / C ++?
например ,:
Для обычного процесса Java, скажем, его pid равен 12345, я могу отправить ему сигнал 3 следующим образом ...kill -3 12345, и, надеюсь, я смог бы запустить javacore или heapdump, изменив конфигурации JVM.
Однако, если JVM создается через JNI API и помещается внутри приложения на C / C ++, виден только PID собственного процесса, в этом случае, если я отправляю сигнал этому процессу, весь процесс просто завершается и кажется, что JVM вообще не может получить сигнал.
Заранее благодарю ...
Решение
Нет.Для JVM не существует отдельного процесса.JVM просто запускается в процессе, который ее вызвал.Я не думаю, что Sun документирует способ использования этих обработчиков сигналов через интерфейс вызова.