Sending Signals to a Running JVM

后端 未结 2 458
温柔的废话
温柔的废话 2020-12-09 13:21

I\'m using a custom signal handler to catch TERM, ABRT and INT signals in a custom java daemon. I have this handler in the code so that I can send TERM signals to it and gr

相关标签:
2条回答
  • 2020-12-09 13:38

    First of all, understand that this is just a standard warning for sun.misc package. They're letting you know that the API you're using is not a standard Java API. It doesn't mean that they're actively planning to remove this API in the future. http://java.sun.com/products/jdk/faq/faq-sun-packages.html

    As far as your question, it's not quite clear to me why the default way java process handles kill signals is not sufficient for you: How to stop java process gracefully?. If you need to add additional logic, you can add a shutdown hook.

    Still, If you're looking for other ways to let your java process know it's time to exit, you can have it listen on a socket, or stdin, or a named pipe...

    You might also want to look into JVMTI

    0 讨论(0)
  • 2020-12-09 13:48

    You could do this via JMX. JMX is a standard set of apis that can be used to monitor and manage java applications.

    Here are some links to get you started :

    http://onjava.com/pub/a/onjava/2004/09/29/tigerjmx.html

    http://www.ibm.com/developerworks/java/library/j-jtp09196/index.html?ca=drs

    The main idea is this :

    a) You will have a boolean variable, say isShutDownTrigerred. You will have a thread that will run a infinite loop, sleep for 2s, and keeps checking this variable value. When the value is true, you will execute code that will shutdown the application.

    b) Then you write a mxbean (check the links above). This mxbean will be used to change the "isShutDownTrigerred" value to true. You can use a tool like jconsole /jManage to see and modify the mxbeans of a java application. As soon as the "isShutDownTriggered" is set to true, the above thread is going to know it and will execute the shutdown of the application

    0 讨论(0)
提交回复
热议问题