我希望在子 tmux 进程终止时执行一个函数。
考虑以下脚本:
#!/bin/bash
function foo
{
echo "foo exit"
}
trap foo SIGHUP
tmux
该脚本启动 tmux。然后,从 tmux 会话内部运行:
$ tmux kill-session
然后 tmux 关闭,我看到:
[exited]
该foo
函数没有被调用,我猜是因为父进程没有收到 SIGHUP 信号。
我希望在关闭foo
时执行该函数。tmux
我怎样才能实现这个目标?
答案1
您需要将信号替换为SIGCHLD
。
trap foo SIGCHLD
如果分叉的子进程停止/终止,该信号将发送到父进程。正如您提到的,虽然SIGHUP
仅影响当前进程/脚本。