Wol*_*lph 4 command-line session-manager tmux session-restore
为了稍微改进我的工作流程,我编写了一些包装脚本来在我想要处理项目时自动启动一些命令。但是,当我完成并清理此特定会话的所有 tmux 选项卡后,我想终止一些进程并清理一些文件。
有没有办法在退出tmux服务器时自动执行命令?
想要的工作流程:
[编辑]我目前使用的脚本:https : //github.com/WoLpH/dotfiles/blob/master/bin/tmx
目前,没有特定的方法让 tmux 自动运行由detach
会话中的所有窗口触发或关闭的命令。但是,由于您已经有一个tmux_wrapper
可以打开所需自定义会话的包装脚本(我将称之为),因此您可以轻松地将此脚本转换为自动清理。我自己在这里做了一些与此非常相似的事情,如果我通过 ssh 附加,我希望允许嵌套的 tmux 会话。
由于您考虑的是自定义体验,因此您不再需要tmux attach ....
或类似的命令,因此我假设您总是通过类似tmux_wrapper A
. 在您的包装器中,您可能有一行类似于tmux new-session -s A
. 在这里我们可以利用会话名称A
。然后,在包装器的末尾,您可以有一个清理开关,只有在会话不再活动时才会激活(即窗口/窗格不再可附加)。
一个简单的例子tmux_wrapper
看起来像这样:
#!/bin/sh
sess=$1
# test if the session has windows
is_closed(){
n=$(tmux ls 2> /dev/null | grep "^$sess" | wc -l)
[[ $n -eq 0 ]]
}
# either create it or attach to it
if is_closed ; then
tmux new -s $sess
else
tmux attach -t $sess
fi
# the session is now either closed or detatched
if is_closed ; then
# perform cleanup here ...
fi
Run Code Online (Sandbox Code Playgroud)
像tmux_wrapper A
. 现在,当且仅当会话已完全关闭时,会话 A 的清理才会自动发生。
归档时间: |
|
查看次数: |
2599 次 |
最近记录: |