使用Jakarta Commons Daemon重新加载配置

时间:2010-01-05 14:56:13

标签: java apache-commons-daemon

使用Jakarta Commons Daemon可以让我的Java应用程序在向SIGHUP进程发送jsvc信号时执行操作(重新加载配置)吗?如果不是 - 在没有停止进程的情况下,使用此库重新加载配置的其他选项是什么?我查看了文档,但在这个问题上没有发现它。

注意:我不需要跨平台处理信号的方式。我只是想知道Jakarta Commons Daemon在与基于UNIX的平台一起使用时在配置重新加载方面提供的内容。

1 个答案:

答案 0 :(得分:1)

Java没有跨平台的方式来处理信号。最好的办法是打开Socket并等待输入。使用netcat或小型Java程序连接到套接字。在里面,接受连接,重新加载并关闭连接。您甚至不需要来回发送数据。

[编辑]似乎没有任何支持来处理Jakarta Commons Daemon的C部分中的信号。请参阅此article from IBM如何在JNI库中实现自己的信号处理程序。它是为Java 1.3编写的,但对Java 5和6仍然有效。

[EDIT2]如果可移植性不是问题,您可以尝试未记录且不受支持的类sun.misc.Signal。见this thread。请注意,它不受支持,未记录等,并且API在过去五年中没有变化。