【发布时间】:2014-04-10 07:28:40
【问题描述】:
我有一个无头 Java 应用程序,它永远在后台运行,就像我想的服务/守护程序一样。它在 Linux 上运行并收集数据,将其存储在数据库中,持续循环。
它通过init.d 脚本启动和停止。它在系统启动时启动 jar 在后台运行,并通过在系统关闭时终止特定的 java 进程来停止它。另外,我可以访问此脚本以手动启动/停止,如下所示:
sudo service my-java-app stop
尽管很原始,但这已经足够了。但现在我希望使用更优雅的界面。这将允许我发送命令(即更改数据采集频率和友好终止)和请求数据(即健康检查和统计)。
我以前从未这样做过,我正在寻找一些关于从哪里开始的指导。该应用程序在无头 Linux 的后台运行,因此 GUI 不适合。我曾想过运行一个 http 服务器并监听 POST 和 GET,但这并不容易在 bash 中实现或使用。我认为可能有一个虚拟 COM 端口或我可以创建的东西?甚至是我写入的文本文件,应用程序会定期读取?
我认为最终目标是一种在 bash 中执行命令并让 java 应用程序以某种方式侦听/附加到此的方法。
【问题讨论】:
-
netcat 呢?你可以发送任何东西并用一个简单的脚本包装它会很容易
-
我认为这取决于您希望如何发出请求:如果您想从其他计算机/设备访问,只需使用浏览器,使用 HTTP GET/POST 似乎是正确的选择。您可以使用
curl从命令行访问。但是,如果您不想进行远程访问,这可能是矫枉过正 -
@rpax netcat 是一个 Linux 程序,对吧?你是建议我用 ProcessBuilder 或类似的东西包装它吗?我假设我会在 bash 中运行 netcat 命令来建立通信。
-
@Darian 不,我的意思是打开一个简单的套接字,然后执行类似的操作: echo "some command to be parsed" | nc 本地主机...
标签: java linux shell user-interface service