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! ......
と表示され、再開されました。