Как отправить сигнал в JVM, созданный с помощью вызова JNI_CreateJavaVM?

StackOverflow https://stackoverflow.com/questions/1740837

Вопрос

Есть ли какая-либо возможность, что я могу напрямую отправить сигнал на виртуальную машину 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 документирует способ использования этих обработчиков сигналов через интерфейс вызова.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top