배고픈 개발자 이야기

[리눅스] 시스템 서비스 등록하기 본문

언어/C언어, C++언어

[리눅스] 시스템 서비스 등록하기

이융희 2020. 3. 5. 12:44
728x90

리눅스에서 프로그램을 실행하다 보면 서비스로 등록해서 프로세스로 띄워 편리하게 사용하고 싶을 때가 있어서 포스팅을 시작하려고 합니다.

 

shell 프로그램을 실행할 땐 ./test.sh &를 입력하면 백그라운드로 실행됩니다.

&는 background로 실행하는 명령어 입니다.

하지만 &로 실행하게 되면 shell이 종료되거나 사용자 로그아웃시 프로세스가 중단(hangup)됩니다.

 

이번에 JAVA spring boot로 배포된 프로그램을 백그라운드로 실행해보면서 문제점들이 있었는데요

CTRL+C : 포그라운드 작업을 정지(종료)

CTRL+Z : 포그라운드 작업을 일시정지 후 백그라운드로 밀어넣기 

를 실행하면 아래와 같이 정지됬다는 문구가 출력되는데

bg %JID : 백그라운드 작업을 재시작

으로 실행되지 않을 때가 있습니다.

 

알아보니 ssh 접속이 끊기며 실행했던 파일들이 종료된다고 합니다. ex) 톰캣

 

특정 프로그램을 지속적으로 실행하기 위해선 nohup이라는 명령어가 필요합니다.

 

 

-I/O exception 발생시 I/O 재지향 하여 백그라운드로 실행하는 방법

http://blog.daum.net/_blog/BlogTypeView.do?blogid=0PxSa&articleno=604&categoryId=33&regdt=20090917105933

 

nohup 실행파일 1> /dev/null 2>&1 &

nohup 실행파일 1> /dev/null 2>&1 & 실제적인 설명은 마지막에 드리고 먼저 I/O 재지향에 대한 개념을 소개합니다. I/O 재지향 ls > ls_resul

blog.daum.net

 

-nohup사용법

https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_nohup_%EC%82%AC%EC%9A%A9%EB%B2%95

 

리눅스 nohup 사용법 - 제타위키

 

zetawiki.com

-실행중인 프로세스 유지 후 ssh 로그아웃하기

https://mkyong.com/java/how-do-run-a-java-program-in-backgroud-unix-linux/

 

How to run a java program in backgroud (unix / Linux) – Mkyong.com

Oftentimes, we use SSH to remote access into the server to run a Java program. The problem is, we can’t type anything After the Java program is executed like this : $ java -jar example.jar In addition, when the remote access session is expired or terminate

mkyong.com

 

Comments