tmux サーバとクライアントのプロセス、そしてネスト

対話的 shell の中で tmux を起動したとき、サーバプロセスはその shell の子供になる。一方、クライアントプロセスは init の子供になるようだ。

tmux クライアントの中で tmux を起動しようとすると、

[takeyuki@sunya ~]$ tmux
sessions should be nested with care. unset $TMUX to force
[takeyuki@sunya ~]$ echo $TMUX
/tmp//tmux-9002/default,14488,0

/tmp/tmux-9002/default は通信用のソケット名、14488 はクライアントの PID だと思われるが、最後の 0 はなんだろう。0 がターミネータで複数個のクライアントプロセス ID が並ぶのかしら。とりあえず、無理矢理 tmux をネストさせてみる。

[takeyuki@sunya ~]$ TMUX= tmux -L 2nd

ほうほう。ステータスラインが二重になった。キー入力は親側が受けるから子供側は操作できない。つまり子供側に新たなウィンドウを作ったりできない。操作したかったら親と子でプレフィックスを変えないと。

危険かな、と思いつつ次も試してみた。

[takeyuki@sunya ~]$ TMUX= tmux attach

うわー。大変。

それだけ。