我有一个在centos 7上运行的grails 2.4.3应用程序。我的问题是我无法通过终端启动应用程序,因为当我关闭终端时,会话终止了。
我启动程序的命令是:
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应用程序的方法。 谢谢。
答案 0 :(得分: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中。
答案 1 :(得分: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