tmuxという言葉を初めて見たとき、何語かと思った。
tmuxというものを知った
VPSでClaude Codeを動かし始めると、すぐに問題が出てきた。
ターミナルを閉じると、動かしていた処理が止まってしまうのだ。
「閉じても動き続けてほしい」という話をGeminiにしたら、「tmuxというコマンドを使うといいです」と教えてくれた。
tmuxというのは、ターミナルの中に「仮想的な作業部屋」を作るツールで、その部屋を「切り離し」ておけばターミナルを閉じても処理が続く、ということらしい。
部屋の中でプログラムが動き続けていて、次にターミナルを開いたときに「tmux a」と打てばその部屋に戻れる。
言っていることはなんとなくわかった。
でも、なんとなくわかっただけだった。
「セッション」「ウィンドウ」「ペイン」という概念があって、それぞれが入れ子になっているらしい。
Geminiに図解で説明してもらっても、読んでいる間はわかった気がするのに、実際に画面を見ると「今どこにいるんだっけ」となる。
コントロールキーを押しながらBを押す。
これがtmuxへの命令の合図だ。Ctrl+Bを押してからDを押すと「デタッチ」といって、部屋から抜け出せる。抜け出した後は「tmux a」で戻れる。
これだけのことを覚えるのに、何日もかかった。
tmuxの中でtmuxを起動した
ある日、作業をしていてふと「あれ、tmux起動してたっけ」と思った。
画面を見ても、自分がtmuxの中にいるのかどうかがわからない。
緑色のバーが下に出ていればtmuxの中、ということは知っていたが、そのときは確認する前に「まあ起動していないだろう」と判断してしまった。
「tmux」と打った。
画面が少し変わった。
よし、起動した。そのまま作業を続けた。
しばらくしてCtrl+Bを押したが、何も起きない。
もう一回押しても反応がない。
Ctrl+B Dで抜けようとしても抜けられない。
画面は普通に動いているのに、tmuxへの命令が一切届かない感じだ。
「壊れた?」と思って焦った。
Claudeの入力欄に「tmux detach」と打ってみた。
Claudeが「tmux detachはターミナルで実行するコマンドです」と教えてくれた。
またやってしまった。
チャット欄にコマンドを打つやつだ。
実はtmuxの中にtmuxがいた
Geminiに状況を説明した。
「tmuxでCtrl+Bが効きません」。
Geminiの回答を読んで、やっと理解した。
すでにtmuxの中にいたのに、そこでさらにtmuxを起動してしまっていた。
tmuxの中にtmuxが入っている状態、いわゆる「ネスト」というやつだ。
この状態になるとCtrl+Bが内側に吸われてしまって、うまく届かなくなることがある。
「sessions should be nested with care」というエラーも出ていたらしいが、英語だったので意味がわからず無視していた。あれが警告だったのだ。
Geminiの指示通りに操作したらなんとか抜け出せた。
正直、何をしたか正確には覚えていない。解決した、という事実だけが残っている。
「今自分はどこにいるんだ」が毎日続いた
この件だけで終わりではなかった。
tmuxを起動したつもりが起動していなかったり、抜けたつもりが抜けていなかったり、気づいたらセッションが増えていたり。
「今自分はどこにいるのか」がわからない状態が何日も続いた。
Geminiに「今どんな状態か確認する方法」を聞いたら「tmux lsというコマンドで一覧が見られます」と教えてくれた。実行してみたら、セッションが3つあった。
いつの間に3つ作ったんだ。
一つひとつ確認しながら、使っていないやつを片付けた。
こういう地道な作業を繰り返しながら、少しずつtmuxというものの感覚をつかんでいった。
1週間くらい経った頃、急にすべてがつながった気がした。
「セッションが部屋で、ウィンドウがタブで、ペインが分割画面でしょ?完全に理解した」と思った。
エンジニアの友人に説明したら「まあ……だいたいそんな感じ」と言われた。だいたいそんな感じ、らしい。
最深部に関西弁の秘書がいる
1週間かけてtmuxを理解した今、自分のtmux構成はこうなっている。
メインのセッションがあって、その中にウィンドウが複数ある。
雑多な作業をなんでもこなす秘書的なClaudeを一つ置いて、あとはプロジェクトごとに作っては壊すスタイルだ。
この秘書Claudeが、なぜか関西弁で起動してくれる。
「おおきに、何でも言うてや」みたいなノリで返事が来る。
こちらが何か頼むと「ほな、やってみますわ」的な雰囲気で動き出す。
設定した覚えは……あるような、ないような。とにかく今はそうなっている。
これが妙に気に入っている。
毎朝tmuxを開いて関西弁の秘書に挨拶するのが、なんか好きだ。
最高の秘書だと思っている。
今はtmuxなしでは生きられない
「でられない」と焦った体験があって初めて、tmuxが何をしているものかを体で覚えた気がする。
VPSでプログラムをバックグラウンドで動かすには、tmuxが一番シンプルだ。
セッションを切り離しておけばターミナルを閉じても動き続けるし、戻ってきたときに「tmux a」で作業状態がそのまま残っている。
概念は、たぶん理解した。
少なくとも使えている。それで十分だと思っている。
「いつもtmuxで立ち上げてる」が口癖になった。
あの「でられない」の1週間があったから、今がある。
← 前の話|第2話|Claude Codeが何を言っているのかわからなくてGeminiに通訳させていた話 | 次の話|第4話|TeraTermがCtrl+Bを横取りしていてtmuxに命令が届いていなかった話 →

コメント