第3話|tmuxの中にいることに気づかないままtmuxを起動して出られなくなった話

第3話|tmuxの中にいることに気づかないままtmuxを起動して出られなくなった話

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に命令が届いていなかった話 →

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

52歳、自営業。エンジニアではない。コードは書けない。

ある日Xで「VPSにClaude Codeを入れると24時間AIが働いてくれる」という投稿を見て、その日のうちにVPSを契約した。意味はよくわかっていなかった。

Geminiを通訳にしながら、Claudeに丸投げしながら、tmuxに出られなくなったり、パスワードをチャットに貼ったり、SSH鍵で1日溶かしたりしながら、気づいたら声でメモを取ってメールが来る生活になっていた。

エンジニアじゃなくても、なんとかなってる。たぶん

コメント

コメントする

目次