Linux

screenで遠隔からコンソールを共有する

遠隔からサーバに ssh などでログインした時、複数のコンソールを扱えるとログを tail などで監視しながら、別の作業ができたりして楽になります。

また、コンソールを他人と共有することで、遠隔の人のオペレーションを確認することもできるようになります。

そこで、今回は screen のお話です。

screenの使い方

screen の仕組みは長くなるので、今回は簡単な使い方の説明をします。

screen が入ってない場合は、インストールして下さい。

AmazonLinux や CentOS であれば、yum からインストールできます。

まずは screen を起動してみます。

この状態で新しくセッションが張られています。

このコンソールで実行した内容はセッション上で動くので、セッションが切れない限り動き続けます。

デタッチ

例えば、会社で長時間かかるスクリプトを実行したまま帰って、自宅からスクリプトの結果(または作業経過)を確認することも可能です。

その場合は、screen のセッションを残したまま、コンソールから外れます。

それをデタッチといいます。

Ctrl+a してから Ctrl+d

画面に、detouch と表示されれば成功です。

OS やシェルによって、コマンドが若干違う場合もあるかもしれないので、その辺は注意が必要です。

アタッチ

detouch しておけば、セッション上では動作は実行しているので、自分の PC 自体は電源を切ってしまっても問題ありません。

次に、自宅などから、上記のセッションに再度接続する方法です。

これをアタッチといいます。

これで、先ほどの screen のコンソールに戻ることができます。

複数の screen を起動する場合は、screen 自体に名前を付けることで管理できます。

それは、また別の機会にでもお話できればと思います。

マルチセッション

最後に、マルチセッションで screen を使う方法です。

先ほどの screen は、デタッチをしないと別の人が screen に入ることはできません。

試しにアタッチしてみても拒否されます。

そこで、マルチセッションで screen を起動してみます。

この状態で、別の人が起動元と同じ場所(同じユーザー)から screen -r をすると、同じセッションが共有できます。

他の人が入力したコマンドを、自分のコンソールで見ることができるのです。

もちろん、両者がコマンドを入力できるので同時作業ではなく、オペレーションの確認など教育関連に使用できるモードって感じでしょうか。

screen は機能が多く、まだ他にもいろいろありますが、今回は取り急ぎ、どんなことができるかをザックリ書き残してみました。

今回の内容だけでも、もっと便利な使い方や、間違った使い方などあると思いますので、いろいろとご意見もらえると助かります。