我有这个 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
不会捕获信号。有人知道为什么会这样吗?