如何干净地关闭 Grails 独立应用程序?

How to cleanly shutdown a Grails standalone application?

停止 Grails 应用程序的最佳方法是:

nohup java -jar myapp.war --server-port=9090 &

获取进程ID:

ps -A | grep java

如果进程id为3114例如,则停止进程:

kill 3114

有时候,Grails 应用程序不能干净地杀死,然后使用:

kill -9 3114

可选地,在您在控制器中的一项操作中,您可以简单地写:

System.exit()

这是关闭 Grails 应用程序的便捷方法,它将正确执行所有 Shutdown hooks 并将通过阻止内存链接、释放资源、额外关闭任何流来干净地关闭您的应用程序。

killall -9 java

 killall -15 java

就是这样!此命令将信号发送到由其名称标识的进程。


为什么 -9-15

因为 您使用了 nohup,这会阻止进程接收 SIGHUP。因此,您必须将 -15 (SIGTERM) 或 -9 (SIGKILL) 与 kill 命令一起使用。