trap 没有捕获 HUP / SIGHUP

trap 没有捕获 HUP / SIGHUP

我有这些 bash 函数:

on_ql_trap(){
  echo "foobar" > "$HOME/.quicklock/debug.json"
}

ql_trap(){
  trap on_ql_trap EXIT;
  trap on_ql_trap 0;
  trap on_ql_trap SIGHUP;
  trap on_ql_trap HUP;
}

ql_trap 由用户调用,但是当用户关闭调用该函数的 bash shell 窗口时,on_ql_trap 永远不会被调用,“foobar”永远不会被写出。

我唯一能想到的是,trap没有注册正确的流程或其他什么。有谁知道我如何保证on_ql_trap流程结束时会被调用?

答案1

不知道为什么,但如果我把它们全部放在同一行,似乎可行:

  trap on_ql_trap EXIT HUP INT QUIT TERM;

相关内容