tmux a
コマンドを使用してtmuxセッションに接続すると、セッションを友人と共有することになり、自分で作業することができなくなります(別のウィンドウで作業する必要があるため)。一方、tmux a -d
に接続すると、友人のセッションが切断され、友人(または私たちの1人)がサーバーで作業できなくなります。
この機能がtmuxの「目的」に反する可能性があることは承知していますが、それでも質問する必要があると思いました。とにかく、私と私の友人がサーバー上で同じtmuxセッションを使用し、同時に異なるウィンドウで作業できるということはありますか?
セッションに接続する代わりに、-t
をnew-session
に指定して「グループ化されたセッション」を作成できます。
tmux new-session -t 'original session name or number'
グループ化されたセッションには常に同じウィンドウがあります(新しい(閉じた)ウィンドウはグループ内のすべてのセッションにリンク(削除)されます)が、それぞれに現在および以前のウィンドウ値を含む独自のセッションオプションがあります。
あなたとあなたの友人がそれぞれ同じグループの一部であるセッションで作業している場合、それぞれが異なるウィンドウで作業できますが、同じウィンドウのセットに簡単にアクセスできます。同じウィンドウで作業することもできます(適切な)。
最初のセッションを作成します。
tmux # start initial session, lets say it gets the name '3'
各セッションを誰が使用するかを明確にするために、各セッションにニーモニック名を付けることをお勧めします。以下ではhis
とmine
を使用しますが、本名、ニックネーム、ログイン名、または同様に識別できるものに基づいたものを使用することをお勧めします。
この元のセッションの名前をhis
に変更し、(元のセッションの外で)mine
という名前のグループ化されたセッションを作成します。
tmux rename-session -t 3 his
tmux new-session -d -t his -s mine # leave off -d to attach right away
「セッション」のクローンにアタッチする場合:
tmux attach-sesssion -t mine
友達が「セッション」のクローンに添付したい場合:
tmux attach-session -t his
どちらのセッションもkill-session
でき、もう一方のセッションは存続します。ウィンドウが強制的に閉じられる前に、グループ内のすべてのセッションを強制終了する必要があります。
tmuxコマンドをスクリプト化する場合は、あいまいさを避け、「自己文書化」を支援するために、(上記のように)完全なコマンド名を使用するのがおそらく最善です。それらを入力している場合は、略語を使用できます。
new-session
:new
、またはnew-s
、new-se
、new-ses
、…rename-session
:rename
、またはrename-s
、rename-se
、rename-ses
、…attach-session
:a
、at
、…、attach
、attach-
、attach-s
、…kill-session
:kill-ses
、kill-sess
、…