我有一个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应用程序的方法。谢谢。
不要在生产中使用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中。
在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