2024/02/13 22:13:39

screen

ひとつのターミナルで複数の接続を可能にする

screen のメリット

ひとつのターミナルで複数の接続が可能になる。つまり、クライアント側のターミナルはひとつで良い。
また、クライアントの接続が切れても、作業が保持されるので、本番サーバで作業中にうっかり接続が切れて大惨事なんてことが避けられます。 さらに、ターミナルによらずログをさかのぼったりコピペが可能になるなど便利な機能があります。

screen のインストールと起動

インストール

ほとんどのディストリビューション向けにパッケージがあるようなので、yum や apt-get で一撃インストールできます。

# yum install screen

起動

$ screen

起動時に、Sorry, could not find a PTY. と言われて、screen is terminating となってしまう場合は、以下のように fstab に記述してサーバを再起動すると、screen が起動できるかと思います。

# vi /etc/fstab
none /dev/pts devpts defaults 0 0
# reboot

screen の操作

「^」は Ctrl キーです。
screen のデフォルトでは、「Ctrl + a + 何かのキー」という操作が大半です。
a を他のキーに割り当てることもできますので、カスタマイズしている人は、そのように読み替えてください。

  • ^a c
    新しい接続でシェルを起動します
  • ^a l
    開いているウィンドウの一覧を表示する
  • ^a n
    次のウィンドウに切り替える
  • ^a p
    前のウィンドウに切り替える
  • ^a a
    直前のウィンドウに切り替える
  • ^a 数字
    指定した数字のウィンドウに切り替える

detach と復帰

screen で起動したあと、^a d という操作をすると、detach されます。
screen を終了してもとのプロンプトに戻ったように見えますが、以下のように操作することで、screen を起動して行っていた接続を復帰させることが可能です。

$ screen -ls
There are screens on:
    3526.pts-0.li154-112    (Detached)
    3384.pts-0.li154-112    (Detached)
2 Sockets in /var/run/screen/S-bayashi.
$ screen -r 3526

以前、detach した 3526 に接続して作業を続けることが出来ます。

接続がひとつしかなければ、引数なしで OK です。

$ screen -r

画面分割

キーバインドの変更

caption のカスタマイズ

トラブルシューティング

サイト内検索