본문 바로가기
IT 기술/개발환경_유틸 관련 팁

screen 을 사용한 공동작업(screen multiuser mode)

by 땅뚱 2010. 4. 16.

개발 할 때 vim + ctags + cscope + screen 을 주로 사용하고 있다.

screen 은 가상터미널을 만들어 여러번 로그인 없이 하나의 로그인으로 여러개의 창을 쓸 수 있는 유틸리티이다.
설치가되어 있지 않다면 ubuntu 의 경우 아래 명령으로 설치할 수 있다.

# apt-get install screen

screen 의 장점은 여러개의 창을 하나의 접속창으로 넘나들 수 있다는 것 이외에도 접속창이 갑자기 꺼진 경우라도 screen 을 실행한 서버가 살아 있다면 작업하던 내용을 그대로 다시 복원할 수 있다는 것이다.

screen 의 기본적인 사용법은 아래 링크를 참조하면 된다.

http://kldp.org/node/18744

screen 의 기능을 잘 사용하면 동시에 여러 개발자가 동일한 화면을 볼 수 있도록 설정할 수 있다.
multiple display 라는 기능이라고도 하고 multi-user mode 라고도 한다.
Multiuser 를 위한 screen 명령으로는 아래와 같은 명령들이 있다. 자세한 내용은 아래 참조 사이트를 참조하면 된다.

8.4.1 Multiuser    Enable / Disable multiuser mode.
8.4.2 Acladd    Enable a specific user.
8.4.3 Aclchg    Change a users permissions.
8.4.4 Acldel    Disable a specific user.
8.4.5 Aclgrp    Grant a user permissions to other users.
8.4.6 Displays    List all active users at their displays.
8.4.7 aclumask    Predefine access to new windows.
8.4.8 Wall    Write a message to all users.
8.4.9 Writelock    Grant exclusive window access.

간단하게 multi user mode 를 세팅하는 방법에 대해서 알아보자.
우선 A 라는 user 로 접속한 후에 c-a :multiuser on 이라는 명령을 수행한다. 이것은 multiuser mode 를 on 시킨다. 이렇게 multiuser mode 가 활성화되어야 위에 나열되어 있는 명령어(acladd/acldel 등등)가 제대로 동작한다.

C-a :multiuser on

만약 B 라는 user 로 A 가 실행한 screen 에 attach 하려고 한다면, A user 는 screen 에서 다음 명령을 수행한다.

C-a :acladd B

이렇게 되면 B 라는 사용자는 A 사용자의 screen multiuser mode 에 attach 될 수 있다.

attach 하는 방법을 알아보자.
우선 screen 을 실행한 상태에서  screen -ls 를 치면 아래와 같은 내용이 출력된다. <> 안의 값은 각자 서버상황에 따라 다르게 출력된다.

# screen -ls
There is a screen on:
        <pid>.<tty>.<host>       <screen 실행 날짜 시간>        (Multi, attached)
1 Socket in /var/run/screen/S-<username>

A 사용자가 실행한 screen 에 대한 session 정보들이다. 이것을 확인 했으면 B 사용자로 로그인하여 다음과 같이 명령을 수행한다.

# screen -x <user_name>/<pid>.<tty>.<host>

이러면 A 사용자가 실행한  screen 에 attach 된 내용을 B 사용자도 동일하게 볼 수 있다. 이제 코드리뷰나 협업하여 개발하는 경우에 screen 의 multiuser mode 를 사용해 보자.

만일 "Must run suid root for multiuser support" 라는 에러가 발생한다면, 아래 트랙백을 참조해서 해결하면 된다.


각 사용자의 추가 등록은 acladd / acldel / aclgrp 사용하고, aclchg 로는 사용자의 권한(특정 screen 윈도에 대하여 read/write 권한을 따로 줄 수도 있다.) 지정하는데 쓰인다.

C-a :displays 는 현재 active 하게 screen 에 붙어 있는 사용자 리스트를 확인할 수 있다.
자세한 내용은 아래 사이트의 user's manual 을 참고하면 된다.

<screen user's manual>
http://www.delorie.com/gnu/docs/screen/screen_25.html






'IT 기술 > 개발환경_유틸 관련 팁' 카테고리의 다른 글

screen multi-user mode error: Must run suid root for multiuser support  (0) 2011.05.12
awk 로 substr 뽑아내기  (0) 2011.02.09
patch 명령 tip  (0) 2010.10.11
vim tip  (0) 2010.09.20
svn 유용한 팁  (0) 2010.03.18