본문 바로가기
기본적인 개념/기타 컴퓨터

[우분투] screen 사용법 (로그파일 확인, 이름설정)

by 인포메틱스 2020. 12. 21.
반응형

 

리눅스에서 혹은 우분투에서 프로그램을 여러개 돌리기 위해 터미널을 여러개로 띄우는 경우가 생깁니다.

 

그러다가 터미널을 정리하던 중에 몇 터미널을 실수로 닫기해버리면 돌리던 프로그램의 결과가 날라가버리는 아주 화나는 일이 일어나게 됩니다.

 

그런 불상사를 예방하기 위해서 우리가 할수있는 일은 프로그램을 background로 돌리는 방법이 있습니다.

 

background로 돌리는 방법은 여러가지가 있습니다. nohup이나 screen,  qsub, sbatch등이 있습니다.

 

screen, qsub, sbatch와 같은 프로그램은 우분투에서 따로 설치를 해야하지만, nohup의 경우에는 우분투에 기본적으로 있습니다.

 

 오늘 포스팅할 것은 위 네개의 프로그램중에 screen에 대해서 간단하게 설명하도록 하겠습니다. (nohup의 경우 추후에 시간이 남으면 사용법에 대해서 포스팅하겠습니다.)

 

screen은 qsub, sbatch와는 다르게 설치하기가 쉽습니다.  (아래 참고)

 

sudo apt install screen

 

그리고 Screen이 설치가 완료되었다면 터미널에 screen을 치고 엔터를 한번 더 치게되면 background 윈도우가 생성되게 됩니다.

 

screen을 치면 나오는 화면

 

background 화면에서 빠져나오기 위해서는 두가지 방법이 있습니다. 그냥 ctrl + dctrl + a +d 가 있는데,

 

첫번째의 경우 background 윈도우를 끄는 것이고, 두번째의 경우 background윈도우(가상윈도우)를 유지 후 끄는 것입니다. (우리가 써야할 것은 두번째겠죠, + 의 의미는 한꺼번에 누르는 것이 아니고 순서대로 누르는 것입니다.)

 

이렇게 background윈도우를 생성해보았고, 위와 같이 생성후에 생성된 윈도우에 프로그램을 돌리고 두번째로 나와야합니다. (ctrl + a + d)

 

 그리고 다시 들어 갈때는 아래와 같이 진행하면 됩니다.

 

# 하나의 screen만 있을시에
screen -r

# 여러개가 있을경우
screen -r

There are several suitable screens on:
	890	(12/21/2020 09:42:20 AM)	(Detached)
	45026	(12/14/2020 05:15:57 PM)	(Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
# screen이 여러개가 있을경우 위와 같이 나오는데 그중에 가상윈도우의 이름을 추가로 써주면 됩니다.
# 아래와 같은 예시로 진행하면됩니다.
screen -r 890

 

그리고 뭔가 자동으로 지정되는 이름이 싫고, 가상윈도우에 원하는 이름을 지정하고 싶다.  아래와 같이 하면됩니다.

 

screen -dmS <원하는 이름>
# 불러올때도
screen -r <원하는 이름>

 

그리고 분석에서 가장 중요한 로그파일을 얻고 싶을 경우! 아래와 같이 하면됩니다.

 

screen -dmS <원하는 이름>  
screen -S <원하는 이름> -X logfile <원하는 logfile이름> # 로그파일 세팅
screen -S <원하는 이름> -X log # 로그기록 시작

 

그리고 logfile을 보게되면 가상 윈도우에서 작업되었던 모든 일들이 기록이 되어있는 것을 볼 수가 있습니다.

(logfile이라고 해서 프로그램에서 나오는 각 로그파일이 아니고, 돌리는 동안 나오는 로그메세지를 저장함.)

728x90
반응형

댓글