在关闭命令窗口时如何在生产模式下启动grail应用程序而不终止会话?

问题描述 投票:0回答:2

我有一个grails 2.4.3应用程序在centos 7上运行。我的问题是我无法通过终端启动应用程序,因为当我关闭终端时,会话终止。

我启动程序的命令是:

export PATH=$PATH:/opt/setup/grails-2.4.4/bin
export JAVA_HOME=/usr/java/jdk1.7.0_80/
grails prod run-app

我已经尝试了很多方法:即:nohup grails prod run-app(运行命令后没有任何变化),setsid prod run-app(程序在运行一段时间后意外终止)。这两种方式都没有奏效。请帮我找到一种精确启动Grails应用程序的方法。谢谢。

java linux grails groovy centos
2个回答
1
投票

不要在生产中使用grails run-app。来自Grails 2.4.4 documentation

永远不要使用run-app命令部署Grails,因为此命令将Grails设置为在运行时自动重新加载,这具有严重的性能和可伸缩性含义

在Grails 2.x(用于生产)中,您需要将应用程序部署到受支持的Java EE容器(Tomcat,Jetty等),这些容器列在文档的同一页面上。

在Grails 3.x中,您可以将Web应用程序打包为jar并像任何其他jar一样运行它,因为它构建在Spring Boot之上,并且容器已打包到jar中。


0
投票

在linux上,您可以使用nohup(无挂起)命令来确保在关闭终端时不会终止该命令。

创建一个包含启动语句的sh(startup.sh)文件:

echo "export PATH=$PATH:/opt/setup/grails-2.4.4/bin
export JAVA_HOME=/usr/java/jdk1.7.0_80/
grails prod run-app" > startup.sh

确保脚本是可执行的

chmod +x startup.sh 

然后

nohup ./startup.sh
© www.soinside.com 2019 - 2024. All rights reserved.