tmuxとssh接続の実験

12May2022

S&S

ssh接続してtmuxを利用していた場合、接続が切れた時どうなるか実験してみました。
サーバー機としてubuntu serverのOSの載ったPC、クライアント機としてubuntuのOSの載ったPCで実験しました。
まずクライアント機でエディタを開いて「Hello,world!」を永遠に出力し続けるプログラムを作りました。

/* test.c */

#include <stdio.h>
#include <stdlib.h>

void main()
{
 for (;;) {
  printf("Hello,world!\n");
 }
 return;
}
  

コンパイルします。

$ gcc test.c
  

実行すると永遠に表示されます。

$ ./a.out
Hello,world!
Hello,world!
Hello,world!
  ......
  

ctrl-cで抜けれます。
このa.outファイルをscpコマンドを用いてサーバー機のホームディレクトリにコピーします。
次にsshコマンドを用いてサーバー機にログインします。
ubuntu serverにはtmuxコマンドが最初から入っておりました。
クライアント機からssh接続でログインした状態で

$ tmux
  

を実行します。
このまま、

$ exit
  

とすればtmuxから抜けれますが、今回はやめておきます。
抜けない状態でa.outを実行します。

$ ./a.out
Hello,world!
Hello,world!
Hello,world!
  ......
  

そしてクライアント機の端末(ターミナル)ウインドウの右上の×をマウスでクリックしてssh接続を切断します。
再度sshコマンドでサーバー機に接続します。

$ tmux attach
  

とクライアント機から入力します。
これは「アタッチ」と呼ばれます。

Hello,world!
Hello,world!
Hello,world!
  ......
  

と表示され、再開されました。


トップページへ