[Tips] Ubuntu(Linux) screen 사용법
[Tips] Ubuntu(Linux) screen 사용법에 관한 포스팅입니다.
개요
결론은 우분투의 터미널에서 오랜 시간 돌아가야하는 작업이 진행중일때, 컴퓨터가 꺼지거나 터미널을 실수로 닫아버린 경우에도 작업은 계속 원활히 동작하도록 하는 것이 목표입니다.
그 방법중에 하나로 screen
이라는 도구를 추천받았고, 조금 더 본격적으로 써보기 위해 포스팅하게 되었습니다.
Installation
sudo apt-get install -y screen
How to use
./screenrc
먼저 설치 이후에 약간의 설정을 해주면 더 보기 편하게 쓸 수 있습니다.
# In terminal,
vim ~/.screenrc
# Copy and paste
ck 5000
vbell off
defscrollback 10000
termcapinfo xterm* ti@:te@
startup_message off
hardstatus on
hardstatus alwayslastline
hardstatus string "%{.bW}%-w%{.rW}%n*%t%{-}%+w %= %c ${USER}@%H"
bindkey -k k1 select 0
bindkey -k k2 select 1
bindkey -k k3 select 2
make screen
screen -S test1
test1 이라는 screen생성하게 됩니다.
여러 창을 사용할 때
저는 보통 하나의 터미널을 크게 4개의 터미널로 분할하여 작업합니다.
이제 생성한 test1이라는 screen을 마치 도커처럼
test1이라는 환경의 4개의 터미널을 다루는 것을 해보겠습니다.
screen -x test1
이러면 test1 screen에 접속하는데,
처음 생성한 screen과 동일한 bash(0 bash)에 들어가게 됩니다.
여기서 새로운 bash를 만드는 것은
ctrl + a + c
bash이동은
ctrl + a + 1 # ctrl + a + 3 이런 식
이런식으로 원하는 bash의 숫자로 이동하면 됩니다.
그러면 아래 사진과 같이 터미널을 구성할 수 있습니다.
Exit
기본적으로 exit
명령어를 입력하면 나오긴합니다.
1번 bash에서 exit하면 1번은 꺼지고, 다른 남은 bash로 이동하게 됩니다.
마지막 bash까지 단순히 exit
을 입력하면 screen에서 나오게 되고,
screen -list
를 통해 확인해보면 screen도 없어지며 종료된 것을 확인할 수 있습니다.
screen을 종료시키지 않고 실행상태 그대로 나오는 방법은
ctrl + a + d
이후 screen -list
를 통해 확인해보면 screen은 여전히 남아 있는 것을 확인할 수 있습니다.
Delete
screen -X -S test1 quit
Etc
당장 기본적으로 필요해보이는 명령어만 다뤄봤는데,
더 많은 기능들이 있는 것 같습니다.
더 자세한 것은 더 잘 정리되어있는 포스팅들을 확인하면 도움이 될 것 같습니다.
걱정되는점
로컬에서는 적극적으로 사용하기는 힘들 것 같습니다.
만약 로컬(데스크탑)에서 학습을 돌리고 있다가 컴퓨터가 꺼져버린다면
그건 그냥 학습이고 뭐고 프로세스가 다 종료되겠죠?
(로컬에서는 실수로 터미널을 잘못 종료했을 때 작업을 잃지 않는 것 정도만 기대할 수 있을 것 같습니다.)
서버에서 screen으로 터미널을 구성해놓고 작업할 때 가장 큰 진가를 발휘할 것 같습니다.
발생한 문제
docker에서 환경을 구성해서 작업하는데
docker내에서 screen을 구성하면 이상하게 현재 경로가 안보이는 문제가 있습니다.
(뭔가 세부적인 걸 고치면 해결될 것 같은데 일단 찾아보지는 않았습니다.)
ls
, pwd
와 같은 명령어로 확인해야 경로나 경로내 파일들을 알 수 있습니다.
로컬과 동일하게 설치하고 세팅했는데, 왜 이런지는 잘 모르겠습니다.
감수하려면 감수할 수 있는 부분인데, 불편할 수도 있을 것 같습니다.
++ 해결방법
여러번 시도해보니, 컨테이너를 들어가서 Screen을 만드는 순서가 아니라
docker 컨테이너를 들어가기 전에 Screen을 만들어 놓고,
컨테이너에 접속해야 올바르게 작동합니다.
📣
포스팅에서 오류나 궁금한 점은 Comments를 작성해 주시면, 많은 도움이 됩니다.💡
Leave a comment