如何在Linux上启动时自动启动基于Gradle的Java应用程序/守护程序?

时间:2014-06-29 23:00:07

标签: java linux bash amazon-ec2 gradle

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

> gradle run

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

2 个答案:

答案 0 :(得分: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)
}

答案 1 :(得分:0)

我正在寻找类似的东西。

也许您可能希望查看与Gradle应用程序插件类似的following Gradle plugin,但也可以将app安装为init.d服务。

提出了另一种解决方案(简单脚本)here