![捕获 HUP/SIGHUP 在 bash 脚本中不起作用](https://linux22.com/image/129528/%E6%8D%95%E8%8E%B7%20HUP%2FSIGHUP%20%E5%9C%A8%20bash%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我有这个 bash 脚本: https://gist.github.com/ORESoftware/06dbb26a48d2ddf48a5a2166834e0836
当我调用ql_acquire_lock
shell 时,如果我可以调用mkdir
目录,那么我就获取该锁。当我调用 时ql_release_lock
,它会删除该目录,简单的东西。
现在,当ql_acquire_lock
被调用时,它调用:
陷阱 ql_on_trap 退出陷阱 ql_on_trap SIGHUP 陷阱 ql_on_trap 0
理论上,如果收到任何这些信号,则会ql_release_lock
被调用:
这我有问题是当我关闭终端窗口时,我的脚本不会捕获 SIGHUP 或 0 信号。当用户发出 SIGINT 时,mytrap
被调用,最肯定的是通过 EXIT 调用。但是当用户关闭终端窗口时(我相信应该发送 SIGHUP),我的脚本trap
不会捕获信号。有人知道为什么会这样吗?