シェルスクリプトマガジン

第4回 リモートアクセス環境の構築(SSHとターミナルマルチプレクサー)

ネットワークが切れても大丈夫なようにする

ネットワークが切れたり、ログアウトせずにTera Termを終了したりすると、リモートアクセスが終了します。もし、処理に時間のかかるコマンドを実行しているときにリモートアクセスが終了すると、そのコマンドが強制終了されます。コマンドの強制終了は、システムに大きな影響を与えかねません。
リモートアクセスが終了しても最後までコマンドを実行するために「ターミナルマルチプレクサー」というソフトを導入しましょう。

ターミナルマルチプレクサーとは

ターミナルマルチプレクサーは本来、一つの端末画面上に複数の端末を開くソフトです(図7)。ただ、リモートアクセスが終了しても実行中のコマンドの処理を継続できるという側面があります。

図7 ターミナルマルチプレクサーで三つの端末を開いたところ

このターミナルマルチプレクサーは端末の後ろ、Ubuntu Server内で動作しています。そのため、ネットワークが切れても、ターミナルマルチプレクサーは動き続けます(図8)。再びリモートアクセスしたときに、端末からターミナルマルチプレクサーに再接続することで状態が復旧できます。

図8 ターミナルマルチプレクサーの動作

ターミナルマルチプレクサーのソフトには「GNU Screen」や「tmux」などがあります。ここでは、tmuxを使います。