職業プログラマの休日出勤

職業プログラマによる日曜自宅プログラミングや思考実験の成果たち。リアル休日出勤が発生すると更新が滞りがちになる。記事の内容は個人の意見であり、所属している(いた)組織の意見ではない。

tmuxでのセッション復旧

tmuxのような screen multiplexer は多くの方が使っているんじゃないかと思いますが、こういったツールが持つ重要な機能の一つに、環境の維持と復元(という言葉遣いは正しくない可能性がそこそこある)があります。特に、ssh接続した先のリモートホストにおいて長時間かかる処理をきちんと動かしたい(sshが切れても処理が継続して欲しい)ときに役立ちます。例えば、ちょっと古いですがStackoverflowにはこんな質問があります。
stackoverflow.com

この目的でtmuxを使うときというのは私の場合は年間数回とかの頻度で発生する訳ですが、私のような年齢になると物覚えも怪しくなるもので、忘れるんですよね。毎回調べるのがとてもつらくなってきた(労力的&精神的)ので、ここにメモを残しておきたいと思います。

環境の維持と復元という文脈での基本的な使い方

  • ssh接続
  • tmux : 起動
  • その中で、何か長時間かかる処理を起動
  • ctrl - b そして d : これでdetachできる
  • (この間、sshをexitしたり通信断したりしても大丈夫。ただし切れた時は再接続はする。)
  • tmux attach : さっきdetachしたセッションの続きの状態になる