본문 바로가기

리눅스

리눅스 CLI 에서 screen 사용하면 작업 또는 프로세스 돌리고 창 닫아도 된다

제목 그대로 보통 리눅스는 CLI 환경으로 많이들 사용하시는데 프로세스가 돌아가는 중이거나 CLI 창 내에서 내가 하던 작업이 창을 끄면 다 사라지게되죠.

 

하지만 윈도우 처럼 창을 열어놓고 원격 연결을 꺼도 하던 작업이 남아있게 할 수 있는 방법이 있습니다!

 

screen 입니다.

 

sudo apt-get install screen

우분투 기준으로 위와 같이 screen 을 설치해 주면 됩니다.

 

Cent OS 는,

sudo yum install screen

 

 

설치를 하셨으면 사용법을 알려 드리겠습니다.

 

아주 간단 합니다.

 

 

screen -S test

위와 같이 -S 옵션은 새로운 세션을 만드는 것으로 test 라는 세션을 만들어 열게 됩니다.

 

그 안에서 작업을 하시면 됩니다.

 

만약 내가 지금 세션 안에 있는건가? 문뜩 기억이 나지 않을 때에는

screen -list

위와 같이 쳐보시면 내가 만든 test 세션에 내가 들어와 있나 아닌가 확인이 가능합니다.

 

들어와 있다면 

There is a screen on:
        31472.test    (2020년 12월 30일 14시 45분 16초)       (Attached)

위와 같이 Attached 라는 표시가 있을 것이고,

 

만약 세션 바깥에 있다면,

There is a screen on:
        31472.test    (2020년 12월 30일 14시 45분 17초)       (Detached)

Detached 라는 표시가 있을 겁니다.

 

이것으로 판단을 하시면 됩니다.

 

그리고 세션 안에서 작업을 하다가 세션을 지워버리는게 아니라 하던 작업을 두고 몸만 나가고 싶다 하시면,

 

Ctrl + A + D 버튼을 눌러 주시면 test 세션을 빠져 나옵니다.

(작업 이력 또는 돌던 프로세스는 그대로 남아있습니다)

 

 

만약 세션을 완전히 지우고 나가고 싶다 하시면,

 

세션 안에서 exit 라고 명령어를 치시면 세션을 닫고 지우면서 나가게 됩니다.

 

그러면 screen -list 로 확인해 보셔도 더이상 세션은 존재하지 않는 것을 확인하실 수 있게 됩니다.

 

 

그럼 내가 사용하던 세션으로 다시 들어가고 싶을 때는?

> screen -list
There is a screen on:
        31472.test    (2020년 12월 30일 14시 45분 17초)       (Detached)

screen -list 로 세션명을 확인한 후,

screen -R test

-R 옵션 뒤에 세션명을 입력해 주시면 test 세션으로 들어가게 됩니다.

 

 

더 많은 옵션이 있지만 딱 필요한 세션 생성, 삭제, 세션 들어가기, 나오기에 대해서만 알아도 쓰시는데 아무 지장이 없어서 필요한 것만 알려 드렸습니다!

 

 

끝.