我有一个基于Gradle的Java应用程序。该应用程序实际上是一个守护程序。在我的本地机器上,我可以通过运行以下命令启动守护进程:
> gradle run
那很好,但是我需要的是一种在主机重新启动时启动守护程序的方法。我正在尝试使其在EC2实例上工作。
最佳答案
我正在做一个插件来做到这一点。主要组件是生成init.d脚本,另一个组件是将它们打包到DEB或RPM中。我还没有将它与应用程序插件本身绑定(bind)在一起,但是很接近,它被称为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)
}