子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
現在のプロセス/スクリプトにのみ影響します。