![脚本完成后终止 tmux 会话](https://linux22.com/image/188455/%E8%84%9A%E6%9C%AC%E5%AE%8C%E6%88%90%E5%90%8E%E7%BB%88%E6%AD%A2%20tmux%20%E4%BC%9A%E8%AF%9D.png)
我有一个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
将在其之后进行清理。