taskkill 时如何保证springboot释放资源?

springboot程序部署再windows server上,关闭的命令,使用 taskkill /pid %%m -t -f。 这样的话程序直接退出,程序里边登录大华摄像头的句柄没法登出,有什么办法能让退出的时候执行登出的代码吗?

阅读 135
1 个回答

你都 -f 强杀进程了还能指望程序会正常退出么……

不知道啥大华摄像头,目测是个 C/C++ SDK 用 Java 包了一层,有非托管资源,你现在是在 finalize 之类的地方去释放的?JVM 进程被强杀了 finalize 肯定不会被执行的 —— GC 都没了还哪来的析构。

你要想优雅退出就在 SpringBoot 里自定义一个 ShutdownHook,然后对外暴露一个接口来触发停机,不要再 taskkill 了。

REF:
https://docs.spring.io/spring-boot/reference/web/graceful-shu...
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏