screenコマンドでプロセスは続くよどこまでも

コマンドラインでのデータ処理はすぐに終わらないものもあります。解析すべきデータ量が多い昨今、とくにその傾向が強いようです。そういう場合に役立つのがこのscreenコマンドで、大学院生時代からかれこれ15年以上愛用しています。使い方は簡単で、まずはscreenを起動するサーバーで [shell] screen [/shell] と打ってscreenを起動します。そうすると起動画面が出たあとはコマンドプロンプトが出て普通にUNIXコマンドラインを使えば良いです。 ホームディレクトリ以下の.screenrcに escape ^Z^Z と書いて、defaultだとControl(Cntl)+aになっているescapeキーをCntl+zにしてつかっているので、以下それを想定して書きます。変更する理由はCntl+aはコマンドライン操作において一番先頭にカーソルを移動するショートカットで、直前に実行したコマンドを再度実行する際の編集などで多用するからです。

作業終了するときには、Cntl+zを押してからdをタイプしてdetachします。そうすると目の前の端末からscreenのセッションが「離れ」ます。これを実行する前にデータのダウンロードや時間のかかるプログラムを実行開始しておいてもそれが続けて実行されつづけます

再び再開するのは、そのマシンにsshでログインして、 [shell] screen -r [/shell] でスクリーンのセッションを呼び戻します(resume)。detachするまえのセッションが再開され、たとえばデータのダウンロードを実行していたのが今はどうなっているか、わかります。また、 [shell] screen -x [/shell] としてもattachでき、こちらだと複数の端末からattachでき、マルチディスプレイモードと呼ばれているようです。私は最近はこちらを使っています。

という具合に時間のかかる作業を頻繁にする必要のあるNGSデータ解析にはもってこいのツールです。是非ご利用ください。


Written by bonohu in misc on 水 24 6月 2015.