서버를 사용하다보면 클라이언트 측에서 연결이 끊기는 경우, 작업중이던 내용은 소멸하게 된다.

이를 극복하기 위한 방법이 screen이다.

 

일반적으로 서버에 접속하면 클라이언트 측에서 handler를 갖고 있다.

screen을 사용하면 이 handler가 서버측에서 동작한다.

이로인해 클라이언트가 정상/비정상 종료 모두 작업내용을 소실하지 않게 된다.

 

주의사항!

handler가 서버에서 동작하기 때문에 서버에서 자원을 회수하거나, 셧다운 혹은 리부트 시에도 screen은 초기화 될 것이다.

어디까지나 장기작업시 보험일 뿐이지, 스냅샷처럼 사용할 수는 없다.

 

  • $ screen -ls
    • 백그라운드에 있는 세션 리스트를 가져온다.
  • $ screen -S 세션명
    • 유저가 지정한 '세션명'으로 screen을 시작한다.
  • $ screen -R 세션명
    • 이미 존재하는 '세션명'을 포그라운드로 들고와 작업을 진행한다.

 

  • $ Ctrl + a + d
    • 스크린을 detach하는 단축키
  • $ Ctrl + a + k
    • 스크린을 종료하면서 빠져나옴

↑자주 사용하는 명령어

↓사용하지 않았지만 혹시나 하는 명령어


  • $ screen -D -R 세션명
    • 이전 세션이 attach 된 상태라면 detach 하고 세션을 복원한다.
  • $ screen -r -d
    • 세션 강제로 detach
  • $ screen -X 세션명
    • 동시에 여러 사용자가 한 화면을 공유하면서 작업을 진행한다.
  • $ screen -X -S 세션명 kill
    • 해당 '세션'을 삭제한다.
  • $ Ctrl + a + esc
    • 위 명령을 사용하면서 방향키를 사용하면 스크롤 가능
  • $ Ctrl + a + |
    • 세로로 화면 분할
  • $ Ctrl + a + ?
    • 키보드 단축키 보기

 

728x90
반응형

+ Recent posts