Login
從 tmux 會話中分離除目前終端之外的所有其他終端
有沒有辦法從正在執行的
tmux
會話中分離所有終端,除了我實際使用的終端?看起來有點奇怪,但這樣做的意思是為最終使用者遠端會話保留一些“持久性”層,同時確保使用者僅在“一個外殼”上使用系統。
正如這裡所解釋的,很容易根據使用者名創建會話:
if [[ "$TMUX" == "" ]] && [[ "$SSH_CONNECTION" != "" ]]; then # Attempt to discover a detached session and attach # it, else create a new session WHOAMI=$(whoami) if tmux has-session -t $WHOAMI 2>/dev/null; then tmux -2 attach-session -t $WHOAMI else tmux -2 new-session -s $WHOAMI fi fi
但我還想確保最後一個連接的終端是唯一一個仍然連接到使用者
tmux
會話的終端。它有辦法做到這一點嗎?我也接受基於
screen
(或其他多路復用器)的解決方案;)
如果我正確理解了您的問題,則
-d
可以選擇attach-session
執行您想要的操作:tmux -2 attach-session -d -t $WHOAMI
這將附加到指定的目標會話並分離所有其他客戶端。
您可以在附加會話後執行類似的操作,使用
detach-client
’s-a
和-t
選項:使用 命名客戶端-t
,並添加-a
以分離除命名客戶端之外的所有客戶端。
screen
還有一個-d
選項可以做同樣的事情。