Linux Commands
screen session에서 작업을 수행하면 terminal session이 끊기더라도 session이 유지되어 작업이 끊기지 않는다.
그래서 screen은 linux server에서 batch 작업이나 장 시간 작업을 수행할 때, background 작업을 수행할 때 많이 사용한다.
screen은 창 분할을 위해서도 사용할 수 있지만 이런 경우 나는 주로 tmux를 사용한다.
session 외부 명령어
동작 | 명령어 | 설명 |
---|---|---|
list screen session | screen -list screen -ls | 현재 열려있는 screen session와 각 screen에 대한 detach/attach 여부, screen 생성 시간, sessionId를 확인할 수 있다. |
start screen | screen -S {name} | name 으로 screen을 생성하고 screen에 진입한다.이미 있는 이름으로 생성하더라도 새로운 session을 만들어주는데, 이는 sessionId가 다르기 때문에 다른 id 이다. |
enter screen | screen -r {name} or {sessionId} | session에서 나온 이후에 동일한 session에 진입할 때 사용한다. name이나 sessionId로 들어갈 수 있다. 같은 name의 session이 여러 개인 경우 sessionId를 명시해야 한다. |
enter screen | screen -x {name} or {sessionId} | 혼자서 쓰면 -r 이랑 유사하다.-x option은 screen이 attach 상태(다른 terminal에서 접속한 상태) 여도 들어갈 수 있다.-r option은 attach 상태면 들어갈 수 없다.여러 터미널에서 동시에 진입한 경우 세션이 공유되어 동일한 세션이 터미널에 공유된다. |
kill screen | creen -X -S {name} kill | 하나의 session 죽이기. session을 exit 하지 않고 detach 해서 나오면 screen의 session은 살아있기 때문에 이걸 종료하는데 사용된다. |
kill all screen | killall screen pkill screen | 모든 session을 종료하기. 실수가 남을 수 있어서 조심해야 한다. |
session 내부 명령어
동작 | 명령어 | 설명 |
---|---|---|
detach screen | ctrl + a d | screen session에서 나오기. detach로 나오면 session은 살아있으면서 나오는 것. 가장 빈번하게 사용되는 커맨드 |
check sessionId | echo $STY | session 내부에서 현재 sessionId를 확인하기 위한 커맨드. 현재 터미널이 screen 내부에 있는 것이 맞는지 확인하기 위해 빈번히 사용된다. |
그 외의 다양한 명령어들이 많으나, 창 분할은 tmux를 사용하는 것이 더 편리하다.