네... 저희 회사는 리눅스 서버에서의 컴파일과 작업이 상당히 많습니다.

당연히 리눅스 서버도 여러개고요...

개인적으로는 데스크탑 역시 우분투를 이용해서 개발하고 있습니다.

(액트브 엑스를 써야할때, 너무 괴롭습니다 ㅠㅠ);;



오늘 소개할 것은 두가지 입니다.

먼저 두사람이 하나의 화면을 공유해서 서버에서 작업하는 방법

두번째는 리눅스 서버에 연결해서 터미널 작업을 하다가 나의 PC를 재부팅해야 할때

터미널 환경을 그대로 유지하게 해주는 방법입니다.




첫번째 공동작업에 대한 소개입니다.

회사에서 닐니리라는 직원이 업무를 하고 있습니다.

업무 도중 그우루라는 상사에게 소스코드에 대한 질문을 하고 싶은데 외근중입니다.

헐... 엄청 급한 일인데 돌아올때까지 기다릴수가 없습니다.

그렇다고 말로 설명할수도 없는데.... 이런 경우 쓰는 방법입니다.



먼저 닐니리는 서버에 접속합니다.

root@boggle70-desktop:~# screen -S nilili


와 같이 screen 명령으로 세션을 생성하고 vi 로 터미널을 연후에 상사에게 전화를 합니다.
xxx 번 서버에 접속해서 screen session nilili 를 열어달라고

상사 그우루는 회사 서버에 접속하여 
root@boggle70-desktop:~# screen -x nilili

를 실행합니다.
실행하는 순간 닐니리 직원이 보고 있는 화면과 동일한 화면이 뜨면서
서로의 입력이 공유되고 그우루 상사가 틀린 소스를 에디트 하면
닐니리는 그우루 상사가 수정하는 화면을 본인의 터미널을 통해서 확인 할수 있습니다.

작업이 모두 끝나고 그우루 상사는 Ctrl-a D 를 통해서 세션을 빠져 나가고
닐니리 직원은 모든 작업을 완료후 Ctrl-a \(백슬러쉬) 를 입력하고 세션을 종료합니다.


윈도우의 원격지원과 비슷하다고 할수 있죠.
물론 리눅스에서 가능하다는 것이 참 중요하죠...





두번째 것은 같은 응용입니다.
screen 으로 세션을 생성후 Ctrl-a \ 로 세션을 종요하지 않고
Ctrl-a D 를 눌러 세션에서 빠져 나온 경우 세션은 서버에 살아 있습니다.
로그아웃을 해도 날아가지 않죠.
심지어 ssh 로 접속해서 작업하다가 세션을 잠깐 빠져나온후 ssh 연결을 끊어도 살아 있습니다.
이후에 다시 로그인해서 screen -x 명령으로 세션을 다시 진행 할수 있습니다.

서버에서  작업을 하는데 환경과 진행 중인 코딩을 유지한채 내 PC 를 재부팅해야 하고 싶다면,
서버에 접속후 screen -S myname 으로 세션을 열어 작업을 하는 것도 매우 유용합니다.




요약본 screen 명령
screen -S [session-name]
   - 세션 생성

screen -x [session-name]
   - 이미 생성된 세션에 연결하기

screen -list
   - 현재 생성되어 있는 세션 리스트 확인하기

screen 으로 생성한 세션에서 유용한 명령어
Ctrl-a D       - 세션을 유지한채 빠져나가지
Ctrl-a \       - 세션 종료해 버리기
 


요거 다섯가지만 알아도 screen 은 사용할줄 아는 겁니다.
tip : 연습한다고 서버에 너무 많은 세션을 생성하지는 말자구요!!!