【tmuxの使い方】ssh接続が切れてもセッションを保持する方法

スポンサーリンク
【tmux】ssh接続が切れてもセッションを保持する方法Ubuntuの環境設定

AIモデルの学習など長時間のプログラムを動かしているときに、SSHの通信が切れて作業がパーになってしまうことがあるかと思います。

SSH通信が切れてもセッションを保持し続けることができるtmuxというソフトを紹介します。

 

tmuxとは

tmuxは「terminal multiplexer」の略で、ターミナルの仮想環境を作るものです。

teraterm等では、1つのターミナルで1つのセッションを作り操作しますが、

tmuxでは、1つのターミナルで複数のセッションを作ります。

また、セッション内のウインドウを分割して、1画面に表示することもできます。
(分割したウインドウはペインと呼ばれます。)

tmux_ペイン

 

tmuxのセッションはプロセスが起動して保持するので、SSHの通信が切れても続きから作業を再開することができます。

AIの学習など長時間のセッション維持が必要なときに、この機能が非常に役に立ちます。

tmuxの仕組み

 

tmuxの導入方法

tmuxはaptコマンドを使ってインストールすることが可能です。

apt install tmux

 

公式サイトはこちらになります。

GitHub - tmux/tmux: tmux source code
tmux source code. Contribute to tmux/tmux development by creating an account on GitHub.

 

tmuxの主要コマンド一覧

 
利用環境コマンド概要
bashでの操作
(通常のSSHを繋いだ状態)
tmuxtmuxの起動
tmux lstmuxセッション一覧表示
tmux a -t <対象セッション名>tmuxセッション再開
tmux kill-session -t <対象セッション名>tmuxセッション破棄
tmux内の操作



「ctrl + b」を押した後に、「?」を入力ヘルプの表示
「ctrl + b」を押した後に、「c」を入力tmuxのウインドウ追加
「ctrl + b」を押した後に、<数字>を入力tmuxのウインドウの切り替え
「ctrl + b」を押した後に、「&」を入力tmuxのウインドウの削除
「ctrl + b」を押した後に、「%」を入力ペインの作成(左右に分割)
「ctrl + b」を押した後に、「”」を入力ペインの作成(上下に分割)
「ctrl + b」を押した後に、「x」を入力ペインの破棄
「ctrl + b」を押した後に、「d」を入力tmuxセッション終了
「ctrl + b」を押した後に、「s」を入力セッションやウインドウの一覧を表示

 

tmuxの使い方

tmuxの操作方法について説明していきます。

まず、クライアントPCからサーバにSSH接続した状態からスタートします。

クライアントPCのbashに接続している状態

tmux_クライアントPC画面

 

tmuxの起動

tmuxコマンドを使うと、新しいセッションを作成して操作する事ができます。

tmux

セッション0の作成状態

 

新しくセッションを作成されたら、いつも通りコマンドの実行が可能です。

セッション0の作成

 

tmuxの終了

作ったセッションを保持したまま、tmuxを終了します。

「ctrl + b」を押した後に、「d」を入力

クライアントPCのbashに戻った状態

元のbashに戻りいつものSSHを接続した状態になりました。

もちろんtmuxのセッションは残っています。

クライアントPCのbashに戻った

 

tmuxセッション一覧を確認

保持されているセッションの一覧を確認してみます。

tmux ls

tmux_セッション一覧を確認

セッション0にウインドウが1つあることが確認できました。

 

tmuxを再開(セッション再開)

保持しているセッションを再開してみます。

tmux a -t 0

セッション0の作成状態

 

再度tmuxが起動し、セッションの続きから操作することができます。

セッション0の作成

 

tmuxのウインドウ追加

ウインドウを新たに作成してみます。

「ctrl + b」を押した後に、「c」を入力

window1を作成した状態

 

新たなウインドウが作成されました。

window1を作成した

 

tmuxのウインドウの移動

先程まで操作していたウインドウ0に戻ってみます。

「ctrl + b」を押した後に、<数字>を入力

ウインドウ0に戻った状態

 

ウインドウ0のペインに戻ることができました。

セッション0の作成

 

ペインの追加(上下に分割)

新たにペインを作成してみます。

「ctrl + b」を押した後に、「”」を入力

ペインの追加(上下に分割)した状態

 

ウインドウが上下に分割され、ペインが新たに作成されました。

ペインの追加(上下に分割)

 

ペインの移動

元々いた上のペインに戻ってみましょう

「ctrl + b」を押した後に、<矢印キー>を入力

ペインの上に戻った状態

上のペインに戻り操作が可能になりました。

ペインの上に戻った

 

セッションの追加

tmuxのセッションから一度抜け、tmuxコマンドを使用すると新たなセッションを作成することができます。

「ctrl + b」を押した後に、「d」を入力し、

再度tmuxコマンドを使う。

tmux

 

セッションを追加した状態

 

新しいセッションのウインドウが作成されました。

セッションを追加した

 

ペインの追加(左右に分割)

次は、ペインを横に新たに作成してみます。

「ctrl + b」を押した後に、「%」を入力

ペインの追加(左右に分割)した状態

ウインドウが左右に分割され、ペインが新たに作成されました。

ペインの追加(左右に分割)

 

tmuxの全体構成を確認

「ctrl + b」を押した後に、「s」を入力

tmux_全体構成を確認

矢印キーで操作して、Enterを押せば好きなペインに移動することもできます。

 

ペインの削除

不要になったペインを削除します。

「ctrl + b」を押した後に、「&」を入力し、「y」を選択

 

すべてのペインがなくなるとウインドウも削除されます。

セッションも同様で、すべてのウインドウがなくなると削除されます。

 

まとめ

SSHの接続が切れてもセッションが切れない方法として、tmuxを紹介しました。

長時間のプログラムの実行が必要な際には、ネットワークが切れることでプロセスが落ちる心配がなくなるので非常に便利です。

また、セッションが切れないだけでなく、1つのウインドウで複数セッションを使うことができる便利なツールなので使いこなしていきましょう。

 

参考文献

お金をかけずにサーバーの勉強をしよう - tmuxでテレワークも安心 -
テレワーク時にTeraTermを使ってLinuxサーバーの作業をする時に便利なtmuxを使ってみましょう。

コメント

タイトルとURLをコピーしました