🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 如何给你的程序注入钩子 这里模拟一个场景,比如我要停止一个程序,那么我想在停止这个程序的时候做一些我们想要的操作,比如关闭ppt的时候自动保存一下ppt,类似的场景其实还有很多,因为windows下演示效果不是很好,我这里使用docker下的centos做演示: ![](https://img.kancloud.cn/3e/90/3e90e0b5ec86e4b86dac44acdea6b608_658x221.png) 运行效果如下: ![](https://img.kancloud.cn/06/c5/06c57037e583f1350d7e8cd3b36b9617_953x442.gif) 利用`nohup`看一下: ![](https://img.kancloud.cn/fb/d2/fbd2eb05e359949d84276cba568d83ed_953x442.gif) 接下来我们手动抛出一个异常试一下: ![](https://img.kancloud.cn/a6/6c/a66c8bca280bea5aa061c5368923a111_619x297.png) 代码运行效果如下: ![](https://img.kancloud.cn/7b/85/7b85992f09d86a0b9357da5ffc6bc0cd_953x442.gif) 继续整理笔记,昨晚搞数据迁移搞到凌晨点多,真叫一个困,现在在家又打开我的小笔记本了,我发现我是真的很肝啊。。我docker这个窗口都没舍得关。。。 继续正文: 可以看到异常已经抛出来了,那么接下来我们加入Hook: ![](https://img.kancloud.cn/c8/28/c8284e423516bb21cf9d28e899d6e2fc_764x485.png) 运行效果如下: ![](https://img.kancloud.cn/00/ae/00aeda499d8b1a2d217bcd571f3bc7d9_782x462.gif) 可以看到钩子程序已经生效了,那么我们使用kill -9 试试呢? ![](https://img.kancloud.cn/a0/68/a068a51909ac66f945bb24179a31572c_812x500.gif) 可以看到kill -9 关掉程序 我们的钩子程序没有执行,因为kill -9 属于强杀,所以平时使用的时候需要谨慎。