我使用以下命令在Amazon Linux EC2实例上运行grails应用程序:
setsid grails run-war
我使用了这个命令,这样我就不必打开我的终端窗口,它可以继续运行,即使我的Windows计算机已关闭,我也可以登录亚马逊机器。唯一的问题是它运行良好一天然后它似乎关闭。我每隔一天发现一次,我必须重新发出命令。是什么导致应用程序退出,因此需要重新启动?
答案 0 :(得分:2)
正如在任何类型的部署环境中使用run-app
的评论所指出的那样,按照您希望的方式运行。
run-app的Grails文档甚至包括以下声明(重点是我的):
此目标不适用于部署应用程序。 生成WAR文件时实现了许多优化 用于run-app之后不可用于run-app的部署 优化了开发人员的工作效率,而不是性能。
注意它说“部署”而不是“生产”。简而言之,你正试图用一把螺丝刀钉在钉子上(这是工作的错误工具)。解决方案是在该环境中部署您的应用程序,而不是使用run-app
。
答案 1 :(得分:0)
如果你想要的是在EC2上运行你的Grails应用程序,那么Boxfuse会为deploying Grails 3.x apps on EC2提供简单的原生支持。
你需要做的只是字面意思
boxfuse run my-grails3-app-1.0.jar
和Boxfuse将自动
所有更新均以零停机蓝/绿部署执行。如果您需要多个实例,Boxfuse还支持ELB,自动缩放等。
Boxfuse分析您的原生Grails 3 application.yml配置并自动提取您的应用所需的端口和运行状况检查信息。然后,此信息用于正确设置安全组和ELB。
更多信息:https://boxfuse.com/getstarted/grails
免责声明:我是Boxfuse的创始人兼首席执行官