如何使用命令关闭grails run应用程序

如何使用命令关闭grails run应用程序,grails,shutdown,run-app,Grails,Shutdown,Run App,执行grails run app后,除了使用Ctrl+C”,是否有命令将其关闭?否。grails run app旨在以交互方式运行以供开发 如果您想将grails作为服务进行控制,那么应该将其部署到web应用程序容器(如tomcat)中 tomcat.deploy.username="manager" tomcat.deploy.password="secret" tomcat.deploy.url="http://myserver.com/manager" 到Config.groovy,然后

执行
grails run app
后,除了使用Ctrl+C”,是否有命令将其关闭?

否。
grails run app
旨在以交互方式运行以供开发

如果您想将grails作为服务进行控制,那么应该将其部署到web应用程序容器(如tomcat)中

tomcat.deploy.username="manager"
tomcat.deploy.password="secret"
tomcat.deploy.url="http://myserver.com/manager"
到Config.groovy,然后可以使用

grails tomcat deploy
grails tomcat undeploy
启动和停止应用程序。或者,您可以使用
grailswar
将您的应用程序捆绑到所有java应用程序服务器都应该能够使用的war存档中


如果您真的想在不使用Ctrl+C的情况下停止
grails run app
,请编写一个调用
System.exit(0)
。然后浏览到该URL,或者编写一个调用它的小shell脚本或批处理文件,例如
wget
curl
快速方法是终止java进程:

ps -aux | grep grails

kill“上面的proessid是应用程序的容器”

我找到了一种在Grails2.0.1上工作的简洁方法

这是一个使用GrailsRun.groovy中的hack在运行功能测试后关闭服务器的hack(参见第246行)

在应用程序basedir中创建名为.kill run app的文件

当Grails看到.kill run应用程序文件时,它会发出一个grailsServer.stop()。它还可以方便地删除该文件。这可能取决于是否有自动编译。我不确定,就像我说的,这是一个黑客行为

有一天,当GrailsRun.groovy脚本更改时,它很可能会停止工作

我创建了一个简单的Ant目标来实现这一点。当然,您需要另一个终端来执行它(实际上我是从Eclipse运行它)


在Grails 2.1.0中,一个简单的“退出”会停止服务器

我是Grails新手,我也遇到了这个“问题”。我编写了一个小脚本(称为grill;-)来终止所有Grails进程

#!/bin/bash
for P in $(ps aux | grep grails | grep java | awk '{print $2};'); do
kill -9 $P
done
exit 0
用于停止服务器 从终端退出并使用以下命令中的任意一个:

  • grails退出
  • grails停止应用程序
  • grails退出

在Grails 2.3.3中,在命令行上运行“Grails dev run app”会使命令窗口处于一种不确定状态。它不会返回命令提示符,Ctrl-C什么都不做,您必须恢复到手动终止进程

遵循预期用途更令人愉快,如下所示:

  • 在命令行上,输入命令“grails”并点击return(注意,没有给出任何参数)。这将启动grails本身(并且只有grails,即它不会启动服务器或应用程序)。这将导致一个新的java进程。它还将返回grails提示符,因此您仍然可以控制
  • 1.1在grails提示符下,您可以通过键入“run app”启动服务器(和应用程序)。这将启动服务器(在开发模式下),并再次返回grails提示符。服务器运行后,您现在有两个java进程正在运行,一个用于grails,另一个用于服务器和应用程序

    1.2如果您想停止服务器(和应用程序),您可以在grails提示符下输入“停止应用程序”,这将停止服务器和应用程序。此外,您将返回grails提示符。停止服务器/应用程序后,您将返回到只运行一个java进程,即grails

    1.3在grails提示符下,您可以任意多次启动和停止应用程序

    1.4要停止grails本身,在grails提示符下,您可以输入“exit”或“quit”,然后grails将退出,并返回正常的命令提示符。此时,grails java进程也应该消失,因此不应该有java进程运行

    我相信所有Grails2.3.x的行为都是这样的。 我的系统是Windows7

    希望这有帮助。
    Noel

    打开一个新的命令行窗口,转到项目目录并键入:

    grails stop-app
    
    如果应用程序在分叉模式下运行,这将停止应用程序。 然后,您可以转到同一URL,并看到页面不会显示,即服务器已停止,因为在执行命令时也会指定该页面


    如果在非分叉模式下运行,这将停止应用程序,否则将退出控制台



    退出控制台。

    我在停止运行grails服务器时遇到了同样的问题。我做到了

  • ps aux | grep grails-->给了我PID
  • 杀死-9 PID
  • 这样我就可以停止运行的服务器。希望这能有所帮助。

    如果您确实通过web可访问的控制器操作来杀死应用程序,请确保在部署到生产环境之前将其删除,或者对其进行严格保护,以防恶意用户仅仅杀死您的应用程序。
    grails stop-app
    
    grails exit
    
    grails quit