我有一个基于Gradle的Java应用程序。该应用程序实际上是一个守护进程。在我的本地方框中,我可以通过运行来启动守护进程:
> gradle run
这很好用,但我需要的是在重新启动主机时启动守护程序的方法。我试图让它在EC2实例上运行。
答案 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。