【Linux】突然回線切断しても続きから作業を再開できるようにする方法

電波が不安定な状態で無線回線を使っていると回線が頻繁に切断され、その度に作業がやりなおし・・・なんてことがあります。

このような場合に対処するには、screenコマンドが便利です。
screenコマンドを使うと万一回線が切断しても、直前の状態から作業を再開できます。

screenコマンド

screenコマンドは仮想端末を管理するコマンドです。
screenコマンド上で複数の仮想端末を立ち上げることができ、1つの画面で複数の端末を切り替えながら使ったりすることができます。
screenコマンドは実に様々な機能を持っていますが、今回は回線切断に対応できるように起動・切断・再接続の方法について説明します。

起動

起動は簡単です。コマンドプロンプトで「screen」と入力します。

入力すると仮想端末が立ち上がります。

ウィンドウタイトルが「screen 0: bash」となっていて、screenコマンド上で管理されている仮想端末であることがわかります。

切断(デタッチ)

切断→再接続と操作した際に、プロセスが継続実行されていることが確認できるように「tail -f」を実行しておきます。

この状態で「Ctrl + A」「D」と順番に入力します。

するとscreenコマンド上の仮想端末から切断され、screenコマンドが実行された元の端末に戻ります。
切断された仮想端末はバックグランドで動作し続け、ログアウトしても停止することはありません。

再接続(アタッチ)

再接続するために、まずlsオプションをつけてscreenコマンドを実行し、screenコマンドで管理されている仮想端末を確認します。

例では仮想端末「12417.pts-0.localhost」が動いているので、この仮想端末に再接続します。
再接続にするには、rオプションに仮想端末のプロセス番号「12417」をつけてscreenコマンドを実行します。

成功すると、指定した仮想端末に再接続されます。

回線切断への操作手順

説明する必要はないかもしれませんが、回線切断時の操作手順をまとめておきます。

Step1. screenコマンドを実行し、仮想端末上で作業する。

*** 回線切断発生、サーバから強制的にログアウト ***

Step2. サーバに再ログイン

Step3. 「screen -ln」を実行し、仮想端末の一覧を確認。

Step4. 再接続したい仮想端末を見つけたら、「screen -r プロセス番号」を実行。

*** 作業再開 ***


screenコマンドは今回説明した以外にも、

  • 1画面を分割し複数の仮想端末を表示して使う
  • 同じ仮想端末に複数の端末から接続して画面共有のように使う

など様々な使い方ができます。興味のある方は調べてみると面白いと思います。