我有一个基于Gradle的Java应用程序。 该应用程序实际上是一个守护进程。 在我的本地盒子上,我可以运行以下命令启动守护进程:
> gradle run
这很好,但是我需要的是在主机重启时启动守护进程的方法。 我试图让这个在EC2实例上工作。
我正在做一个插件来做到这一点。 主要组件是生成init.d脚本,另一个组件是将它们打包成一个DEB或RPM。 我还没有将它与应用程序插件本身绑定,但它很接近,它被称为nebula-ospackage-daemon插件: https : //github.com/nebula-plugins/nebula-ospackage-plugin#nebula-ospackage-守护进程 。 你会做这样的事情:
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) }
我正在寻找类似的东西。
也许你可能想看看下面这个类似于Gradle应用程序插件的Gradle插件,但是也会把app作为init.d服务来安装。
这里提出了一个不同的解决方案(简单脚本)。