通过命令行与app通信

时间:2017-02-13 21:53:06

标签: java linux bash shell

我正在尝试使用java“服务器应用程序”,它应该在ubuntu服务器的后台运行。
目前的系统并不完美,这就是我想开发一个新系统的原因...... 目标是在后台运行java应用程序(通过nohup或linux服务),并且仍然能够执行命令(停止状态等)来控制此应用程序的行为。
我想创建一个服务器套接字,它正在监听localhost,这使我能够编写一个java“客户端”应用程序,它将命令发送到服务器并在之后终止...
我的问题是,如果可以避免使用这样的“客户”应用程序 这将是理想的,如果我只有一种方法只使用bash将字符串发送到服务器(例如包括像curl这样的工具)。 这可能吗?
我的计划系统是一个好计划吗?

感谢任何帮助!

2 个答案:

答案 0 :(得分:3)

您需要一个服务协议。

正如你所说,“如何使用卷曲”?当然,您可以使用rest api创建一个Web服务。

网络服务非常简单,如果你想要一些简单的io,你可以阅读https://www.playframework.com/,并在30分钟内使用它(25分钟下载pacakges,5分钟阅读文档)

另一种方法是使用“nc”作为“客户端”,可在此处找到一个简单的介绍页面:http://man.openbsd.org/OpenBSD-current/man1/nc.1

你可以写

echo "your command" | nc localhost 6666

向服务器发送套接字请求。

但是,您应该自己定义协议。

答案 1 :(得分:1)

  

我的计划系统是一个好计划吗?

我不知道您的应用程序的范围,但如果您要重写代码,请考虑使用Spring Boot 它是如此简单的框架,可以轻松生成命令行应用程序,可以deployed as a linux service

所以你可以运行像

这样的命令
service xyz start
service xyz stop
service xyz status