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

我有一个基于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服务来安装。

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