我编写了一个作为守护进程启动的 Java 应用程序(我通过 bash 守护重定向 stderr 和 stdout 并关闭 stdin)。但是,有时我希望能够向此应用程序发送消息并通知它更改其行为的某些部分。我需要能够从终端向应用程序发送消息,因此任何需要图形实用程序的东西都是不可行的。
行为的改变相当简单。我需要在我的应用程序中切换一个线程的状态,以及一种优雅地关闭应用程序的方法。
我有什么选择来实现这一目标?我知道我可以在进程中有一个线程来侦听某种类型的套接字以获取消息,但这对于我的需求来说似乎有点过分了。
我对 Linux/Unix 上的信号不太熟悉,所以我想问一下我是否可以简单地为某些信号设置自定义处理程序,并在进程收到信号时执行我的代码。
还有其他我根本不知道或没有考虑过的选择吗?