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