【问题标题】:Best practices creating Java service or daemon scripts创建 Java 服务或守护程序脚本的最佳实践
【发布时间】:2010-11-18 12:35:47
【问题描述】:

我正在寻找一种工具来在 Linux 中将 java 服务器进程作为守护程序服务运行(并且可能在 Windows 和其他操作系统上)。我正在寻找有关如何构建生产能力脚本和启动配置的最佳实践。

我熟悉项目构建的最佳实践,使用Apache MavenApache ANT + Ivy 之类的东西来管理您的构建过程并管理外部依赖项以及构建工件和程序集。

在创建包含配置和启动脚本以及所有已编译代码和依赖项的项目程序集时,我不清楚最佳选择是什么。是否有一个很好的开源项目可以作为示例,它将服务包装器和配置脚本与其构建过程捆绑在一起?

我已经能够使用 Maven 和 Jetty Launch plugin 来运行我的 Web 应用程序,Terracotta Maven plugin 来测试多个 JVM 集群服务器节点,我已经使用 Maven 的 exec:java 来运行我的自定义 Java 服务器,但是我'不确定以这种能力使用 Maven 是否真的是“生产”质量,这也意味着我的生产服务器依赖于从源构建服务器并从可能不可用的服务器下载依赖项。

以下是我在 Java 服务启动器解决方案中寻找的一些潜在功能:

  1. 应作为 Linux 服务或 Windows 服务进程运行
  2. 可以使用 Maven 插件或 Ant 脚本构建,并允许我处理配置文件和脚本
  3. 应该能够从 Apache Ant 包含我项目的所有依赖项
  4. 应该能够引入完整的 Java Web 应用程序服务器(例如 Jetty 7)并使用我的自定义 Web 应用程序的战争进行配置
  5. 应该能够处理标准的 Java 守护程序服务(自定义 Java 服务器)

我一直在查看的一些选项是Java Service Wrapper,它在Maven appassembler plugin 中使用。

我还可以使用 Maven 的 assembly plugin 和自定义程序集描述符来定制构建输出。

【问题讨论】:

    标签: java maven-2 ant jvm daemon


    【解决方案1】:

    Java Service Wrapper 似乎很常见。我见过一些人使用它,尤其是在nexus

    【讨论】:

      【解决方案2】:

      实现各种 Linux 服务的首选(也称为“最佳实践”)方法是创建一个可以启动、停止和重新启动服务的 shell 脚本并将其放入/etc/init.d。然后从相关的“rc.*”目录中添加适当的符号链接。 “init(8)”、“chkconfig(8)”等请参考 Linux “man”条目。

      【讨论】:

        猜你喜欢
        • 2011-12-16
        • 2010-09-24
        • 2020-08-10
        • 2011-10-31
        • 2010-10-09
        • 2020-02-12
        • 1970-01-01
        • 2018-03-10
        • 1970-01-01
        相关资源
        最近更新 更多