$ $ tmuxセッションの作成・中断・再開・終了

ターミナル作業を中断して後で再開したい。
そんなときtmuxのセッション機能が役立ちます1

1つのセッションしか利用しないなら、以下のかんたんなコマンドだけでも利用できます。

tmux 

# Ctrl + b → d (デタッチ) または、ターミナルを終了

tmux a 

# exit

tmux kill-serverCode language: PHP (php)

関連記事

1. セッションを作る(tmux new -s)

tmux操作の流れ 1 作成 $ tmux または $ tmux new -s work 2 中断 Ctrl+b d セッション継続中 確認(任意) $ tmux ls 一覧表示 3 再開 $ tmux attach 名前指定する場合 $ tmux attach -t work ✓ SSH切断しても継続 ✓ 複数セッション管理可 ✓ いつでも作業再開

tmuxを起動すると、自動的にセッションが作られます。

tmux

名前を付けたい場合はこうします2

tmux new -s work
Code language: JavaScript (javascript)

workという名前のセッションができます。
作業内容が分かる名前を付けておくと、後で探しやすくなります。

2. セッションから離れる(C-b d)

作業中のセッションを残したまま、一時的に抜け出すには「デタッチ(detach)」を使います3

Ctrl + b → d

この操作で通常のターミナルに戻りますが、tmuxの中で動いていたプログラムはそのまま動き続けます4
SSHが切れても作業は止まりません。

サーバーで長時間かかる処理を走らせるとき、セッションを残しておけば途中で接続が切れても安心です5
複数の作業を並行するときも、それぞれセッションを分けておくと整理しやすくなります。

3. セッションに戻る(tmux attach -t)

デタッチしたセッションに戻るには「アタッチ(attach)」します6

tmux attach
tmux a

複数のセッションがある場合は、名前を指定します7

tmux attach -t work
tmux a -t work

どんなセッションがあるか確認したいときは、リスト表示が使えます8

tmux ls

これでセッション名と状態が一覧で見られます。

4. セッションの終了

不要になったセッションはexitコマンドで終了するか、tmux kill-session -t セッション名で削除しましょう9

tmuxセッション中にデタッチではなく、exitをコマンドすれば、終了されます。

exitCode language: PHP (php)

また、セッション外からコマンドで終了するには、kill-sessionでセッション名を指定します。


tmux kill-session -t <セッション名>

tmux kill-serverCode language: HTML, XML (xml)

kill-serverでは、すべてのセッションを終了できます。

  1. tmuxは「terminal multiplexer」の略で、1つのターミナル内で複数の仮想端末環境を管理できるツールです。 – tmuxとは何か?複数のターミナルを一画面で管理できるツールの特徴と活用シーンを詳しく解説
  2. newは新規セッション作成コマンド、-sオプションはセッション名(session name)を指定するためのものです。セッション名は後からtmux rename-sessionコマンドで変更することもできます。 – tmuxを使いこなそう(ウインドウ、ペイン、セッション、アタッチ、デタッチ)
  3. より正確には、Ctrl-bを押してから一度キーを離し、その後dを押します。この操作により、SSH接続が切れてもサーバー上でtmuxセッションとその中で実行中のプロセスは維持され続けます。 – 【tmuxの使い方】ssh接続が切れてもセッションを保持する方法
  4. tmux内で起動したフォアグラウンドプロセスは、デタッチ後もtmuxセッション内で実行され続けます。SSH接続が切断されると通常はSIGHUPシグナルが送られてプロセスが終了しますが、tmuxがこれを防ぎます。 – 切断後もリモートSSHセッションとプロセスを維持する5つの方法
  5. tmuxは特にSSH経由でのリモートサーバー作業で威力を発揮します。ネットワーク切断時にもセッションが維持されるため、長時間かかるビルドやデータ処理、バッチ実行などを安全に行えます。 – tmuxを使ってSSHの接続が切れてもコマンドを動かし続ける
  6. tmux attachtmux aと短縮することもできます。また、tmux attach-sessionが正式な完全形のコマンド名です。 – tmux: How to attach and reattach sessions
  7. 引数なしでtmux attachを実行すると、最後にデタッチしたセッションに自動的に接続されます。特定のセッションを指定したい場合は-t(target)オプションでセッション名を指定します。 – tmux の初心者向けガイド
  8. tmux lstmux list-sessionsの短縮形です。出力には、セッション名、ウィンドウ数、作成日時、画面サイズ、接続状態(attached/detached)などが表示されます。 – 【Linux】tmuxコマンドのデタッチとアタッチ
  9. 放置されたセッションはサーバーリソースを消費し続けるため、定期的な整理が推奨されます。 – 【AWS/Linux】tmux コマンド チートシート