[Linux] 리눅스 장기간 응용 프로그램 구동을 위한 백그라운드 수행 방법 : screen

 정보

  • 업무명    : 리눅스 장기간 응용 프로그램 구동을 위한 백그라운드 수행 방법 : screen

  • 작성자    : 이상호

  • 작성일    : 2021-01-18

  • 설   명    :

  • 수정이력 :

 

 내용

[개요]

  • 안녕하세요? 기상 연구 및 웹 개발을 담당하고 있는 해솔입니다.

  • 오늘 포스팅에서는 장기간 응용 프로그램 구동을 위한 백그라운드 수행 방법 : screen을 소개합니다.

 

 

[특징]

  • 리눅스에서 장기간 응용 프로그램 구동을 위해서 쉘 스크립트 기술이 요구되며 이 프로그램은 이러한 목적을 달성하기 위한 소프트웨어

 

[기능]

  • screen 설치/확인/실행/재확인/종료

 

[활용 자료]

  • 없음

 

[자료 처리 방안 및 활용 분석 기법]

  • 없음

 

[사용법]

  • 소스 코드 참조

 

[사용 OS]

  • Linux (CentOS v7.3)

  • VMware Workstation Pro v15.5

 

[사용 언어]

  • ShellScript (bash)

 

 세부 설명

  • screen 명령어는 여러 개의 가상 터미널을 시작하여 화면 관리해주는 소프트웨어로서 다음과 같은 장점이 있습니다.

  • screen은 하나의 단말기에 여러 개의 단말기를 가상으로 시작할 수 있는 응용 프로그램입니다.

  • 단일 터미널에서 여러 창을 만들 수 있기 때문에 screen이라고합니다. 

  • 또한 사용자가 로그 아웃해도 닫혀 있지 않으면 가상 터미널 (창)은 유지되어 사라지지 않는 것입니다.

  • 즉 다음에 로그인 할 때도 앞의 가상 터미널 (창)에 접근할 수 있습니다.

  • 이는 퓨터 종료 없이 장기간 응용 프로그램을 구동할 때 사용합니다.

  • 응용 프로그램을 실행 > 응용 프로그램을 백그라운드에서 작동 > 사용자 로그 아웃 > 다시 로그인 > 응용 프로그램의 상태를 확인

 

[bg와 fg 명령]

  • 쉘 (bash)의 표준 명령에 fg와 bg 같은 명령이 있습니다.

  • bg 응용 프로그램을 백그라운드에서 실행시키기위한 명령입니다.

  • fg는 백그라운드에서 실행되는 응용 프로그램을 조작 할 수있게하는 명령입니다.

  • 이 경우 screen은 필요 없다고 생각할 수 있으나 이 명령어는 큰 문제가 있습니다.

  • bg와 fg는 사용자 측면에서 확인할 수 없기 때문에 응용 프로그램이 작동하지 않는다고 판단할 수 있습니다.

  • 그래서 백그라운드에서 응용 프로그램을 동작시키고 싶은 경우는 screen을 사용하는 것이 일반적입니다.

 

[설치]

  • RedHat 또는 Debean 계열은 다음과 같습니다.

# RedHat 계열의 경우 
$ sudo yum -y install screen 

# Debian 계열의 경우 
$ sudo apt-get install screen

 

[확인]

  • screen -ls 명령어를 통해 백그라운드 프로세스 확인

  • 가상 터미널을 이용할 때 중복 확인 필요

$ screen -ls

 

 

[실행]

  • screen -S 백그라운드 프로세스명을 이용하여 가상 터미널 구동

  • <ctrl + a. d> 단축키를 통해 현재 작업 중을 유지하면서 screen에서 포그라운드 전환

# 예시로서 screen –S LSH
$ screen –S 네임드

 

 

[재 확인]

  • screen -ls 명령어를 통해 PID 번호 또는 백그라운드 프로세스명 확인

  • screen -R 명령어를 통해 재 확인

# screen 목록 확인
$ screen –ls
	           
# 수행 프로그램 확인 (1)
$ screen –R PID 번호

# 수행 프로그램 확인 (2)
$ screen –R 백그라운드 프로세스명

 

 

[종료]

  • kill 또는 screen -X -S 명령어를 통해 종료 가능

# 종료 (1)
$ kill  28685

# 종료 (2)
$ screen –X –S LSH_1 kill

 

 참고 문헌

[논문]

  • 없음

[보고서]

  • 없음

[URL]

  • 없음

 

 문의사항

[기상학/프로그래밍 언어]

  • sangho.lee.1990@gmail.com

[해양학/천문학/빅데이터]

  • saimang0804@gmail.com