除了通过执行 ctrl z 并再次运行它来关闭它之外,我如何重新启动 grails 应用程序。
当我这样做时,它会说
Error Server failed to start for port 8080: Address already in use
CTRL-Z不关闭应用程序,向进程发送 SIGTSTP 信号以暂停它...暂停的进程仍然与其资源(端口、文件等)有连接,因此您不能在同一端口上运行另一个 grails 实例而其中一个被暂停。
要将其带回前台,您可以fg
在同一个 shell 中输入(或者如果您希望它在后台运行,您可以使用bg
)
要关闭它,你需要CTRL- C(或者你可以像 nickdos 在评论中所说的那样杀死它)
要彻底关闭run-app
or ,请在您的 grails 应用程序的顶级目录中run-war
创建一个名为的空文件(即在、等旁边)。一旦应用程序停止,Grails 将自动删除该文件,因此当它在您创建它后不久消失时不要感到惊讶。.kill-run-app
grails-app
src
关机不需要进程黑客,也不需要“可能毁掉一切”的免责声明:)
赶紧跑:
grails stop-app
如果这仍然不起作用:
lsof -i :8080
或者ps aux | grep grails
将显示进程 ID,然后首先尝试很好地杀死它:
kill 12345
(其中 12345 是 processId)
如果它真的不想玩得很好,那么锤它:
kill -9 12345
(其中 12345 是 processId)
每次都有效(免责声明:可能会毁掉一切)