【问题标题】:How to automatically launch a Gradle based Java application/daemon on startup in Linux?如何在 Linux 启动时自动启动基于 Gradle 的 Java 应用程序/守护进程?
【发布时间】:2016-12-17 02:12:48
【问题描述】:

我有一个基于 Gradle 的 Java 应用程序。该应用程序实际上是一个守护进程。在我的本地机器上,我可以通过运行来启动守护进程:

> gradle run

这很好用,但我需要的是一种在主机重新启动时启动守护进程的方法。我试图让它在 EC2 实例上工作。

【问题讨论】:

  • 这在很大程度上不等同于“如何在启动时运行任意命令?”。
  • 您能否澄清一下 - 您正在使用 gradle 在生产环境中运行应用程序,而不仅仅是构建它?

标签: java linux bash amazon-ec2 gradle


【解决方案1】:

我正在开发一个插件来做到这一点。主要组件是生成 init.d 脚本,另一个组件是将它们打包成 DEB 或 RPM。我还没有将它与应用程序插件本身绑定,但它很接近,它被称为 nebula-ospackage-daemon 插件:https://github.com/nebula-plugins/nebula-ospackage-plugin#nebula-ospackage-daemon。你会做这样的事情:

 buildscript {
    repositories { jcenter() }

    dependencies {
        classpath 'com.netflix.nebula:nebula-ospackage-plugin:1.12.+'
    }
}

apply plugin: 'application'
mainClassName = "sample.Main"

apply plugin: 'os-package'
apply plugin: 'nebula-ospackage-daemon'

daemon {
    command = "/opt/myapp/bin/ospackage-application"
}

ospackage {
    into('/opt/myapp')
    with(applicationDistribution)
}

【讨论】:

    【解决方案2】:

    我正在寻找类似的东西。

    也许你可能想看看following Gradle plugin,它类似于 Gradle 应用程序插件,但也将应用程序安装为 init.d 服务。

    提出了一个不同的解决方案(简单脚本)here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-21
      • 2014-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多