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