You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Grails 7开发环境下如何在Emacs命令行正常停止应用?

解决Grails 7命令行正常停止应用的方法

1. 调整Grails命令别名

全局别名里的--non-interactive会禁用交互式信号处理,导致Ctrl-C无法触发优雅停止,先修改别名:

alias grails="$GRAILS_HOME/bin/grails --plain-output"

若需非交互模式,可在执行特定命令时单独添加参数,比如grails --non-interactive run-app,而非全局默认开启。

2. 正确执行stop-app命令

  • 不要在运行run-app的终端窗口执行stop-app,打开新终端进入项目根目录后执行:
grails stop-app
  • 若端口冲突或识别异常,可指定端口:
grails stop-app --port=8080

3. 用Spring Boot优雅停止机制

Grails 7基于Spring Boot,可通过发送SIGTERM信号实现温和停止:

  1. 先获取应用进程ID(PID):
lsof -i :8080 | grep LISTEN | awk '{print $2}'
  1. 发送停止信号:
kill <PID>

该方式会让应用完成资源清理后再退出,比pkill -9更安全。

4. 启动时添加优雅停止参数

启动应用时开启Spring Boot管理端点,提升stop-app命令的可靠性:

grails run-app -Dspring.application.admin.enabled=true

内容的提问来源于stack exchange,提问作者sodastream

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.05 15:12:01