17

执行后grails run-app,除了使用Ctrl+ C",还有关闭命令吗?

4

9 回答 9

14

对于停止服务器

从终端退出并使用以下命令中的任何一个:

  • grails exit
  • grails stop-app
  • grails quit
于 2013-11-01T10:58:40.967 回答
12

No. grails run-app旨在以交互方式运行以进行开发。

如果要将 grails 控制为服务,则应将其部署到 web 应用程序容器,例如 tomcat。例如,tomcat 插件允许您轻松地将应用程序部署到 tomcat。添加行如

tomcat.deploy.username="manager"
tomcat.deploy.password="secret"
tomcat.deploy.url="http://myserver.com/manager"

到 Config.groovy 然后你可以使用

grails tomcat deploy
grails tomcat undeploy

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

如果您真的想停止grails run-app,请Ctrl+C编写一个调用System.exit(0). 然后浏览到那个 URL,或者编写一个小的 shell 脚本或批处理文件来调用它,例如wgetcurl.

于 2010-08-27T19:58:56.280 回答
9

打开一个新的命令行窗口,进入项目目录并输入:

grails stop-app

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


grails exit

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


grails quit

退出控制台。

于 2014-01-10T06:51:09.653 回答
6

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

遵循预期的用法会更愉快,如下所示:

  1. 在命令行上,输入命​​令“ grails ”并按回车键(注意没有给出参数)。这会启动 grails 本身(并且仅启动 grails,即它不会启动您的服务器或应用程序)。这会产生一个新的 java 进程。它还为您提供 grails 提示,因此您仍然可以控制。

1.1 在 grails 提示符下,您可以通过键入“ run-app ”来启动您的服务器(和应用程序)。这将启动您的服务器(在开发模式下),并再次返回 grails 提示符。随着您的服务器运行,您现在有两个 Java 进程在运行,一个用于 grails,另一个用于您的服务器和应用程序。

1.2 如果要停止服务器(和应用程序),可以在 grails 提示符下输入“ stop-app ”,这将停止服务器和应用程序。此外,您还会得到 grails 提示。停止您的服务器/应用程序后,您将恢复到只有一个 java 进程正在运行,即 grails。

1.3 在 grails 提示符下,您可以根据需要多次启动和停止您的应用程序。

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

我相信所有 grails 2.3.x 的行为都是这样的。我的系统是windows 7。

希望这可以帮助。诺埃尔

于 2013-12-23T12:21:36.810 回答
3

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

于 2012-08-01T07:39:53.343 回答
1

我找到了一种适用于我的 Grails 2.0.1 的简​​洁方法。

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

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

当 Grails 看到 .kill-run-app 文件时,它会发出 grailsS​​erver.stop()。它还可以方便地删除文件。这可能取决于是否启用了 autoRecompile。我不确定,就像我说的那样,这是一个 hack。

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

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

<target name="kill-app" description="--> Kills Grails web application" depends="">
  <touch file="${basedir}/.kill-run-app"/>
</target>
于 2012-05-07T14:20:19.057 回答
0

快速的方法是杀死java进程:

ps -aux | grep grails

杀死“来自上面的过程 ID,它是您的应用程序的容器”

于 2012-03-09T10:52:59.933 回答
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
于 2013-10-04T06:58:51.743 回答
0

我有同样的问题来停止我正在运行的 grails 服务器。我做了

  1. ps辅助| grep grails --> 这给了我 PID
  2. 杀死 -9 PID

这样我就可以停止我正在运行的服务器。希望有帮助。

于 2017-02-27T04:00:24.943 回答