Java守护进程部署

发布于 2024-12-10 11:27:49 字数 323 浏览 0 评论 0原文

我有一个控制台 Java 应用程序,它始终在远程服务器上运行(nohup java -jar myapp.jar &)。

我经常(每隔一天)需要将 JAR 文件替换为新的 JAR 文件(每当我修复缺陷时)。

目前,我通过使用 ssh (WinSCP) 连接到服务器来执行此操作。

如何创建一种机制,使用该机制可以通过 http 协议升级应用程序?我可以使用 JMX 吗?

该机制应该执行以下操作:

a) 停止当前正在运行的应用程序。

b) 将新的 JAR 文件上传到服务器。

c) 启动新的 JAR 文件。

I have a console Java application, which runs all the time on a remote server (nohup java -jar myapp.jar &).

Frequently (every other day) I need to replace the JAR file by a newer one (whenever I fix a defect).

At the moment I do this by connecting to the server using ssh (WinSCP).

How can I create a mechanism, using which I could upgrade the application via the http protocol? Can I use JMX for that?

That mechanism should do following things:

a) Stop the currently running application.

b) Upload the new JAR file to the server.

c) Launch the new JAR file.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

多像笑话 2024-12-17 11:27:49

基本上,您需要将程序分为两部分:

  1. monitor 组件,用于获取新 jar、停止程序、替换 jar、重新启动程序

  2. 实际程序,控制台java应用程序

理论上你可以做所有这一切都集中在一个java 过程,但额外的复杂性在我看来不值得麻烦。

Basically you need to break down the program into two parts:

  1. the monitor component which fetches the new jar, stops the program, replaces the jar, restarts the program

  2. the actual program, the console java application

Theoretically you can do all of this in a single java process but the additional complexity is not worth the trouble in my opinion.

酒与心事 2024-12-17 11:27:49

在 LiveRebel 中,原生支持独立应用程序(即守护进程)。因此,主应用程序与与命令中心通信的看门狗代理一起运行。然后可以从命令中心管理更新。

In LiveRebel, there's native support for standalone applications (i.e. daemons). So the main application is running with the watchdog agent which communicates to the command center. From command center it is possible then to manage the updates.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文