java - 如何向 JNI_CreateJavavm 调用创建的 JVM 发送信号?

标签 java jvm java-native-interface signals pid

有没有可能我可以直接将信号发送到通过在 native C/C++ 代码中调用 JVM_CreateJavavm 创建的 Java 虚拟机?

例如:

对于一个普通的 Java 进程,假设它的 pid 是 12345,我可以像这样向它发送一个信号 3 ... kill -3 12345,希望我可以通过更改 JVM 配置来触发 javacore 或 heapdump。

但是,如果 JVM 是通过 JNI API 创建的,并包装在 C/C++ 应用程序中,则只有 native 进程的 PID 是可见的,在这种情况下,如果我向该进程发送信号,整个进程就会终止,并且看起来是 JVM根本收不到信号。

提前致谢...

最佳答案

没有。 JVM 没有单独的进程。 JVM 只是在调用它的进程中运行。我不认为 Sun 记录了通过调用接口(interface)使用这些信号处理程序的方法。

关于java - 如何向 JNI_CreateJavavm 调用创建的 JVM 发送信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1740837/

相关文章:

java - 如何将 uint8_t * 转换为 jbyteArray jni android

java - LibGDX - 异步加载和处理纹理

java - Gradle 内部 slf4j 与我自己的 slf4j 依赖项冲突

java - 线程堆栈的内部 Java 内存模型

java - JVM 堆栈自省(introspection)

java - JNI + setuid 问题

java - "AWT widgets written in Java which delegated to peer classes that were written in C"是什么意思?

c# - 在 C# 中以通用方式从插入返回标识值

java - 从 Java 项目创建 .jar 文件的最佳实践是什么?

java - 如何从外部不相关的代码读取正在运行的 Swing GUI 的 TextField 或 Cell 值?