springboot程序部署再windows server上,关闭的命令,使用 taskkill /pid %%m -t -f。 这样的话程序直接退出,程序里边登录大华摄像头的句柄没法登出,有什么办法能让退出的时候执行登出的代码吗?
springboot程序部署再windows server上,关闭的命令,使用 taskkill /pid %%m -t -f。 这样的话程序直接退出,程序里边登录大华摄像头的句柄没法登出,有什么办法能让退出的时候执行登出的代码吗?
3 回答3.4k 阅读✓ 已解决
3 回答5.7k 阅读
3 回答2.4k 阅读✓ 已解决
3 回答1.6k 阅读✓ 已解决
1 回答2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
2 回答1.6k 阅读
你都
-f
强杀进程了还能指望程序会正常退出么……不知道啥大华摄像头,目测是个 C/C++ SDK 用 Java 包了一层,有非托管资源,你现在是在 finalize 之类的地方去释放的?JVM 进程被强杀了 finalize 肯定不会被执行的 —— GC 都没了还哪来的析构。
你要想优雅退出就在 SpringBoot 里自定义一个 ShutdownHook,然后对外暴露一个接口来触发停机,不要再 taskkill 了。