我已经编写了一个作为守护进程启动的Java应用程序(我守护程序重定向stderr和stdout并关闭stdin,但bash)。但是,偶尔我希望能够通知此应用程序并通知它更改其某些行为部分。我需要能够从终端向应用程序发送消息,因此任何需要图形工具的应用程序都是不可行的。如何发信号守护进程来改变行为
行为的变化相当简单。我需要在应用程序中切换一个线程的状态,并且可以正常关闭应用程序。
实现这个目标有哪些选择?我知道我可以在进程中有一个线程来侦听某种类型的消息的套接字,但对于我的需求来说,这看起来似乎过度了。
我对Linux/Unix上的Signals不太熟悉,所以我想问问我是否可以简单地为某些信号设置自定义处理程序,并在进程收到信号时执行我的代码。
还有其他的选择,我根本不知道或没有想过?
注意:JVM(至少Oracle的)保留一些内部使用的信号。 – 2012-07-21 05:58:27
我最终通过将我的应用程序分成两个不同的应用程序来解决这个问题。但在此之前,我在使用FIFO来做我所需要的方面取得了很大进展。 – 2012-08-09 00:30:01