脚本完成后终止 tmux 会话

脚本完成后终止 tmux 会话

我有一个bash脚本,用于在tmux会话中运行脚本。它看起来像这样:

#!/bin/bash
session="myjob"
tmux new-session -d -s $session
tmux send-keys 'myscript' 'C-m'

问题是myscript完成后,会话myjob仍然存在。我想在myscript完成后自动杀死它。我试过:

#!/bin/bash
session="myjob"
tmux new-session -d -s $session
tmux send-keys 'myscript' 'C-m'
tmux kill-session -t $session

但这会myscript完全跳过并直接终止会话。

答案1

您应该能够执行以下操作:

tmux send-keys 'exec myscript' 'C-m'

这样,shell 将执行exec脚本(即,myscript将替换 shell 进程而不是作为子进程启动)。然后,当该进程终止时,它将是运行的进程tmux,因此tmux将在其之后进行清理。

相关内容