【问题标题】:Best Method to run a Java Application as a *nix Daemon or Windows Service?将 Java 应用程序作为 *nix 守护程序或 Windows 服务运行的最佳方法?
【发布时间】:2010-09-06 17:36:51
【问题描述】:

我正在寻找将 Java 应用程序作为 *NIX 守护程序或 Windows 服务运行的最佳方法。我查看了Java Service WrapperApache Commons project 'jsvc'Apache Commons project 'procrun'。到目前为止,Java Service Wrapper 看起来是最好的选择……但是,我想知道是否还有其他“开源友好”许可产品。

【问题讨论】:

标签: java unix windows-services daemon


【解决方案1】:

我自己在 Java Service Wrapper 方面取得了巨大成功。其他的我没看过,但是 ServiceWrapper 的主要优势是:

  • 出色的 x 平台支持 - 我在 Windows 和 Linux 上都使用过,发现在两者上都很容易
  • 可靠的文档 - 文档清晰明了,示例很好
  • 对每个平台的深度支持 - 窗口服务管理系统中有一些独特的功能可以被服务包装器完美支持(无需重新启动)。在 Windows 上,您甚至会在进程列表中看到您的应用名称,而不仅仅是“java.exe”。
  • 符合标准 - 与许多即席 Java 初始化脚本不同,服务包装器的脚本往往符合 LSB 标准。如果您希望通过 Linux Heartbeat/HA 等方式进行高可用性管理,这最终会变得非常重要。

不管怎样,只要我的 2 美分... :)

【讨论】:

  • 不能高度推荐这个
【解决方案2】:

另一个选项是WinRun4J。这只是 Windows,但有一些有用的功能:

  • 32 位和 64 位支持
  • 用于访问事件日志和注册表的 API
  • 可以注册服务依赖于其他服务(即服务A和服务B必须在服务C之前启动)

它也是对开源友好的 (CPL),因此没有使用限制。

(完全披露:我在这个项目上工作)。

【讨论】:

    【解决方案3】:

    您是否需要应用任何需要支持的特殊属性(如操作系统引导的资源管理)?否则,对于 Unix,您应该能够通过编写适当的 init.d 脚本并将您的应用程序设置为自动启动来守护您的应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-13
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 2011-02-13
      相关资源
      最近更新 更多