简单的发送/接收接口到后台Java服务应用程序

时间:2014-04-10 07:28:40

标签: java linux shell user-interface service

我有一个无头的Java应用程序,它永远在后台运行,就像我想的服务/守护进程一样。它在Linux上运行并在连续循环中收集数据,将其存储在数据库中。

它以init.d脚本启动和停止。这会在系统启动时启动jar在后台运行,并在系统关闭时通过终止特定的java进程来停止它。另外,我可以访问此脚本以手动启动/停止,如下所示:

sudo service my-java-app stop

尽管是原始的,但这已经足够了。但现在我希望使用更优雅的界面。这将允许我发送命令(即改变数据采集频率和友好终止),并请求数据(即健康检查和统计)。

我之前从未这样做,我正在寻找一些指导,从哪里开始。该应用程序在无头Linux的后台运行,因此GUI不适用。我曾想过运行一个http服务器并监听POST和GET,但这在bash中实现或使用并不简单。我以为可能有一个虚拟的COM端口或者我可以创建的东西?或者甚至我写的文本文件和应用程序间隔读取?

我想象最终目标是一个在bash中执行命令的方法,并让java应用程序以某种方式监听/附加到它。

1 个答案:

答案 0 :(得分:2)

我在Java代码中使用套接字完成了一次。 Java应用程序作为客户端或守护程序运行。 main()入口点检查套接字是否已打开以了解守护程序是否已在运行。您可以使用CLI参数来说明是否要启动守护程序或发送命令。

  • 在守护程序启动时,您在特定端口上打开一个套接字
  • 在另一次启动时,检查该特定端口上是否打开了套接字,如果是,则向其发送消息。

注意:这意味着选择一个固定的端口,顺便说一下,我不喜欢这样。