tmux セッションから現在の端末を除くすべての端末を分離します。

tmux セッションから現在の端末を除くすべての端末を分離します。

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同じことを行うオプションもあります。

おすすめ記事