如何终止Grails 2.3应用程序以“启动”;运行应用程序;?

如何终止Grails 2.3应用程序以“启动”;运行应用程序;?,grails,grails-2.3,Grails,Grails 2.3,在版本2.3之前,在控制台窗口中用“运行应用程序”(开发模式)启动的Grails应用程序可以用“Ctrl-C终止。它不再适用于Grails2.3,击键被忽略。有“停止应用程序””命令,但它也不会终止正在运行的应用程序 我可以通过关闭控制台窗口来终止应用程序,但我不希望这样做,因为在这种情况下,我将丢失打印到该控制台的所有调试输出。 “自Grails 2.3以来,run app、run war、test app和console命令现在在分叉JVM中执行,以便将构建类路径与运行时类路径隔离。” 您会

在版本2.3之前,在控制台窗口中用“运行应用程序”(开发模式)启动的Grails应用程序可以用“Ctrl-C终止。它不再适用于Grails2.3,击键被忽略。有“停止应用程序””命令,但它也不会终止正在运行的应用程序

我可以通过关闭控制台窗口来终止应用程序,但我不希望这样做,因为在这种情况下,我将丢失打印到该控制台的所有调试输出。

“自Grails 2.3以来,run app、run war、test app和console命令现在在分叉JVM中执行,以便将构建类路径与运行时类路径隔离。”

您会注意到,如果使用这些默认设置,将创建两个java.exe进程,并且CTRL-C只杀死其中一个

我自己也注意到了这一点。只需在BuildConfig.groovy中注释掉以下行


run:[maxMemory:768,minMemory:64,debug:false,maxPerm:256],
我的问题通过从Grails2.3.4升级到2.3.7得到了解决。在Grails 2.3.7中,“运行应用程序”和“停止应用程序”的行为如文件所述。我认为这个案子是封闭的。
(我不确定这是否可以作为答案,但我觉得这个问题应该以某种形式结束…

你在stop app中面临什么问题/错误?你在什么环境下?Ctrl-C在Windows7上适用。我使用的是Windows7企业版64位、Java1.7.0_45、Grails2.3.4。应用程序启动后,按Ctrl-C键无效。应用程序不会终止。没有抛出错误。它只是一直在运行。在Ubuntu 13.04上,如果出现早期的OutOfMemory错误,有时会发生这种情况,否则ctrl-c正常工作。我一直使用在应用程序的基本目录中创建一个名为
的空文件的技巧。kill run app
,在2.3中仍然有效吗?谢谢你,Jamie,你的建议,但这对我不起作用。我以“run:[…]”行(如您所建议的)以及整个“grails.project.fork=[…]”闭包开始应用程序,但Ctrl-C和“stop-app”都不会停止正在运行的应用程序。这对你有用吗?真奇怪。如果我取消对fork部分的注释,将创建两个java.exe进程,但当注释掉时,它只创建一个(我在发布之前重新验证了一个)。CTRL-C是否会停止这两个进程中的一个(我假设您的情况下有两个)。Jamie,您认为行“run:[…]”控制应用程序是由主java进程运行还是由分支java进程(一个或两个java.exe进程)运行是对的。我的问题是,在这两种情况下,应用程序都不会被Ctrl-C或“grailstop-app”命令终止。