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