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

 정보

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

  • 작성자    : 이상호

  • 작성일    : 2021-01-18

  • 설   명    :

  • 수정이력 :

 

 내용

[개요]

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

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

 

etc-image-0

 

[특징]

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

 

[기능]

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

 

[활용 자료]

  • 없음

 

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

  • 없음

 

[사용법]

  • 소스 코드 참조

 

[사용 OS]

  • Linux (CentOS v7.3)

  • VMware Workstation Pro v15.5

 

[사용 언어]

  • ShellScript (bash)

 

 세부 설명

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

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

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

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

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

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

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

 

[bg와 fg 명령]

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

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

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

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

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

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

 

[실행]

  • nohup 수행 프로그램 & 명령어를 통해 백그라운드 수행

  • 그 결과로서 nohup.out 로그 생성

$ nohup bash RunShell.sh &

 

etc-image-1

 

[확인]

  • ps -a 명령어를 통해 PID 번호 (각 파일마다 고유 번호) 및 수행 명령어

$ ps -a

 

etc-image-2

 

[종료]

  • kill 명령어를 통해 종료

# 종료 (1)
$ kill 28655

 

 참고 문헌

[논문]

  • 없음

[보고서]

  • 없음

[URL]

  • 없음

 

 문의사항

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

  • sangho.lee.1990@gmail.com

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

  • saimang0804@gmail.com