LoginSignup
16
10

More than 5 years have passed since last update.

Screen コマンドによる Linux ターミナル共有

Last updated at Posted at 2017-10-21
  • 参考
  • 概要
    • Screenコマンドを使うと、Linuxコンソールを複数ユーザセッション間で共有できます。
  • ユースケース
    • Devチームのペアプログラミングよろしく、Opsチームにも部下育成やダブルチェックを兼ねて、Linuxサーバオペレーションを複数名で行う場合があります。そんな時は、物理コンソールに人が集まって行うのもよいですが、ターミナルのセッションをSSHで皆が共有できるScreenを使うと捗ります。
  • 環境例
    • Debian Jessie +
    • 共有元ユーザ: parent
    • 共有先ユーザ: child

事前準備

  • screen インストール
sudoer_console
sudoer@test:~$ sudo apt-get update && sudo apt-get install screen
  • screen セッションを各ユーザで共有可能にする設定
sudoer_console
sudoer@test:~$ sudo chmod u+s /usr/bin/screen
sudoer@test:~$ sudo chmod 755 /var/run/screen

セッション公開

  • screen セッション share を立てる
parent_console
parent@test:~$ screen -S share
  • childユーザへ share セッションを共有する
parent_console
parent@test:~$
(Ctrl+a) 
:multiuser on
Multiuser mode enabled
parent@test:~$
(Ctrl+a) 
:acladd child
parent@test:~$

セッション参加

  • parent ユーザが立てたscreenのセッション名を確認し、乗り込む
child_console
child@test:~$ screen -ls parent/
There is a suitable screen on:
        1448.share      (03/07/2017 10:49:09 AM)        (Multi, attached)
1 Socket in /var/run/screen/S-parent.
child@test:~$ screen -x parent/share

ログアウトとデタッチの動作

  • parent ユーザが screen セッションとして起動されているloginセッションからログアウトする
parent_console
parent@test:~$ exit
[screen is terminating]
parent@test:~$
  • child ユーザが screen セッションとして起動されているloginセッションからログアウトする
child_console
parent@test:~$ exit
[screen is terminating]
child@test:~$
  • parent ユーザが screen セッションshareをデタッチする
parent_console
parent@test:~$
(Ctrl+A) (d)
[detached from 1448.share]
parent@test:~$
  • child ユーザが screen セッションshareをデタッチする
child_console
parent@test:~$
(Ctrl+A) (d)
[detached from 1448.share]
child@test:~$
16
10
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
10