我在Digital Ocean的不同服务器(Droplets)中有一些Java应用程序,大多数是使用Spring Boot的。以前,我手动上载每个新发行版,并创建了一些Shell脚本后就可以启动/停止应用程序。对于测试或生产环境,这些脚本包含环境变量。要检查应用程序是否正在运行,我每5分钟启动一次cronjob,如果该应用程序未运行,则该cronjob执行一个shell脚本来启动该应用程序。
但是我切换到使用Bitbucket管道的自动部署,现在我不再拥有shell脚本了,因为所有配置将由Bitbucket管道提供并通过SSH执行。
例如cat environment.sh start.sh | ssh xxx@yyy
,其中environment.sh
是在当时针对每个环境通过正确配置的管道动态创建的。
如果应用程序没有运行,我该怎么做才能自动启动它?我应该在每个自动部署中上载脚本文件并使用cronjob吗?
答案 0 :(得分:0)
您应该使用包装器。 YAJSW是流行的,免费的,并且(以我的经验)在生产系统中运行良好。如果包装程序崩溃,它将重新启动您的进程,并且可以轻松地将其作为服务安装在许多不同的OS上。
注意:我与YAJSW没有任何关系。