开发者

Configuration reload with Jakarta Commons Daemon

开发者 https://www.devze.com 2022-12-15 17:34 出处:网络
Using Jakarta Commons Daemon is it possible to have my Java application perform an action (reload a configuration) when a SIGHUP signal is sent to 开发者_如何学编程the jsvc process? If not - what are

Using Jakarta Commons Daemon is it possible to have my Java application perform an action (reload a configuration) when a SIGHUP signal is sent to 开发者_如何学编程the jsvc process? If not - what are my other options for reloading the configuration with this library - without stopping the process? I have looked at the documentation but didn't find it that clear on this issue.

Note: I do not require a cross-platform way of handling signals. I just want to know what Jakarta Commons Daemon offers in terms of configuration reloading when used with a UNIX based platform.


Java doesn't have a cross-platform way to handle signals. Your best bet is to open a Socket and wait for some input on it. Use netcat or a small Java program to connect to the socket. Inside, accept the connection, reload and close the connection. You don't even need to send data back and forth.

[EDIT] There doesn't seem to be any support to handle signals in the C part of Jakarta Commons Daemon. See this article from IBM how to implement your own signal handler in a JNI library. It was written for Java 1.3 but is still valid for Java 5 and 6.

[EDIT2] If portability is not an issue, you can try the undocumented and unsupported class sun.misc.Signal. See this thread. Note that it's unsupported, undocumented, etc. and the API didn't change for the past five years.

0

精彩评论

暂无评论...
验证码 换一张
取 消