[Ubuntu] Screen 기본 사용법 정리

2022. 8. 26. 16:21Memorizing/Ubuntu

728x90

원격 서버에서 GPU를 사용하는 실험을 수행하다가 로컬 컴퓨터를 꺼야하는 상황이 생긴적이 있으실 겁니다. 그럴 때 나의 로컬 컴퓨터는 꺼지지만 원격 서버는 꺼지지 않게하는 방법이 있는데 그것이 Linux의 Screen을 사용하는 것 입니다. 

Screen이란 Linux에서 물리적인 터미널을 여러 개의 가상 터미널로 다중화해주는 도구입니다. 각 가상 터미널은 독립적으로 동작하며 사용자 세션이 분리되어도 동작합니다. 간단히 말하면 이 도구는 백그라운드로 동작하는 다중 터미널을 만들어 줍니다. 이걸 이용해서 백그라운드 작업을 간단히 수행할 수도 있고 회사에서 작업하던 터미널 화면을 집에 가서도 같은 터미널 화면을 보며 작업을 이어 할 수도 있습니다.

screen에서 자주 사용하는 기본적인 명령어는 아래와 같습니다.

screen을 S인자와 함께 실행하게 되면 screen을 생성하고 해당 스크린으로 접속하게 됩니다. 아래의 예시에서는 "my-screen"이라는 이름의 screen을 생성 됩니다.

# screen을 생성하고 접속하는 명령어
screen -S my-screen

screen을 r인자와 함께 실행하게 되면 (detach)상태인 스크린으로 접속하게 됩니다. 아래의 예시에서는 "my-screen"이라는 이름의 screen으로 접속합니다.

# Detach 상태인 screen에 접속
screen -r my-screen

screen을 x인자와 함께 실행하게 되면 (attach)상태인 스크린으로 접속하게 됩니다. 아래의 예시에서는 "my-screen"이라는 이름의 screen으로 접속합니다.

# Attach인 상태의 screen에 접속
screen -x my-screen

screen을 XS인자와 함께 실행하게 되면 해당 스크린을 종료시킵니다. 종료 시킬 스크린을 지정할 때, 스크린의 이름 또는 프로세스 번호를 지정할 수 있습니다. 아래의 예시에서는 "my-screen"이라는 이름의 screen을 종료시킵니다. 

# screen을 종료
screen -XS quit my-screen
# screen의 이름을 변경
screen -S 9999(세션번호) -X sessionname my-screen

screen에서 ctrl과 함께 a, d를 누르게 되면 해당 스크린에서 빠져나오게 됩니다.

Ctrl + a, d