UNIX/Linux 系 OS 用の仮想端末マネージャーである screen コマンド。以前に紹介した tmux に似てるけど、screen は多くのケースで標準導入されているので、ビルドとかなしにそのまま使えることが多いです。
というわけで、概要と使い方のメモ:
【screen コマンドとは?】
- 1つのターミナル上で、仮想的に複数の端末を同時にオープンして作業するツール。
- 仮想端末が開かれた状態を保ったままターミナルをログアウトできる。後から再度ターミナルでログインして、screen を呼び出すことで仮想端末の状態に復帰できる。
- 1つのターミナルの画面を上下に分割して、複数の端末を同時にアクティブにして(切り替えながら)操作できる。
【screen コマンドの使い方】
【実際の使い方】
一度実行すると、処理完了まで1日程度かかるコマンド(# php test.php)があるとします。
これをサーバー上で実行して、一度デタッチして(バックグラウンドで処理を続けて)からサーバーとの接続を切断し、翌日サーバーに再度ログインして結果を確認する。
というわけで、概要と使い方のメモ:
【screen コマンドとは?】
- 1つのターミナル上で、仮想的に複数の端末を同時にオープンして作業するツール。
- 仮想端末が開かれた状態を保ったままターミナルをログアウトできる。後から再度ターミナルでログインして、screen を呼び出すことで仮想端末の状態に復帰できる。
- 1つのターミナルの画面を上下に分割して、複数の端末を同時にアクティブにして(切り替えながら)操作できる。
【screen コマンドの使い方】
screen 起動# screenscreen 内で新しい仮想端末を開く[ctrl]+a cscreen 内で動いている仮想端末の一覧表示[ctrl]+a wscreen 内で動いている別の仮想端末に移動する[ctrl]+a n または [ctrl]+a [space] 昇順移動 [ctrl]+a p または [ctrl]+a [del] 降順移動 [ctrl]+a 数字 (数字)で示される仮想端末に移動 [ctrl]+a [ctrl]+a 直前に使っていた仮想端末へ戻る現在開いている仮想端末を閉じる(キル)[ctrl]+a k現在開いている仮想端末をサスペンド状態にして閉じる(デタッチ)[ctrl]+a dscreen 内でデタッチ状態で動いている仮想端末の一覧表示# screen -ls (ここで PID が確認できる)screen 内でデタッチ状態で動いている仮想端末に戻る(アタッチ)# screen -r PIDデタッチせずに screen を終了する[ctrl]+a \起動中の screen をバックスクロールモードにする[ctrl]+a [バックスクロールモードでテキストコピーカーソルを始点に移動させて [space] または [enter] カーソルを終点に移動させて [space] または [enter]コピーしたテキストのペースト[ctrl]+a ]画面を上下2分割[ctrl]+a S画面分割後にフォーカス画面を変更[ctrl]+a [tab]画面分割をやめる[ctrl]+a Q
【実際の使い方】
一度実行すると、処理完了まで1日程度かかるコマンド(# php test.php)があるとします。
これをサーバー上で実行して、一度デタッチして(バックグラウンドで処理を続けて)からサーバーとの接続を切断し、翌日サーバーに再度ログインして結果を確認する。
(ssh や telnet でサーバーにログイン) # screen screen 実行(この時点で仮想端末0が実行される) [ctrl]+a c 新しい仮想端末1を作成して移動 # php test.php 処理実行開始・・・・ [ctrl]+a d 処理実行中の仮想端末をデタッチ(この時に screen からも抜ける) # screen -ls デタッチした処理の PID を確認( XXXX だったとする) # exit (サーバーからログアウト) : : : (翌日、再度 ssh や telnet でサーバーにログイン) # screen -r XXXX 前日デタッチした仮想端末をアタッチ (処理が完了していたらそのまま続きの作業を行う。まだ完了してなかったら再びデタッチして完了を待つ)
コメント