tmux
実際に使用している端末を除いて、実行中のセッションからすべての端末を分離する方法はありますか?
これはかなり奇妙に思えるかもしれませんが、これの要点は、エンドユーザーのリモートセッションに対していくつかの「持続性」レイヤーを維持しながら、ユーザーが「1つのシェル」でのみシステムを使用できるようにすることです。
説明どおりここ、ユーザー名に基づいてセッションを作成するのは簡単です。
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
(または他のマルチプレクサ)ベースのソリューションも許可します。)
ベストアンサー1
あなたの質問を正しく理解したら、必要に応じて行う-d
ことができます。attach-session
tmux -2 attach-session -d -t $WHOAMI
これにより、指定された宛先セッションに接続され、他のすべてのクライアントが分離されます。
セッションを接続した後、およびオプションを使用して同様の操作を実行できますdetach-client
。つまり、名前付きクライアントを使用し、指定されたクライアントを除くすべてのクライアントを分離するには追加します。-a
-t
-t
-a
screen
-d
同じことを行うオプションもあります。