제목이 무슨 Jira 티켓처럼 보이네

내가 주로 사용하는 CentOS 7 환경에서 SSH 연결을 끊으면

mvn, npm, node와 같은 프로세스들이 자동으로 죽는 문제가 빈번히 발생한다

 

예전에는 바쁘다는 핑계로 넘어 갔었는데,

코로나 덕분에 연말 약속이 없어져서 해당 이슈를 조금 자세히 볼 기회가 생겼다.

사족을 붙히자면 디자이너 친구가 FE + BE을 도전하고 있는데, 서버 세팅이 필요해서 도와주기로 했었다. 

 

그 과정에서 서버를 키고 SSH 연결을 끊으면 서버 프로세스가 함께 죽는 현상이 발생했다. 

-> npm를 이용하여 react, nodejs 서버를 키고가 더 맞겠다. 참고로 나는 npm을 사용할줄 모른다 그냥 그려러니 하자

1급장애..

 

아래의 키워드로 구글링 해보니까 해당 이슈는 CentOS에서만 발생 하는 이슈는 아닌 것 같았다. 

keeping a process running after putty or terminal has been closed on centos

역시 나에게 맞는 문서가 찾긴 어려웠고 이것저것 하다보니 아래의 문서가 나의 케이스에서 동작했다.

stackoverflow.com/questions/26568135/keep-alive-express-process-after-close-the-terminal

 

Keep alive express process after close the terminal

I'm trying to keep live a process after close the terminal. Is a node.js project with express. Basically, for other process I kept alive processes with: $ node server.js & I with that, was po...

stackoverflow.com

 

잘 동작하긴 한데, nohup이 무엇인지 찾아보니까 아래의 문서에서 친절하게 설명 해준다. 

www.egr.msu.edu/decs/software/nohup/usage

 

Using Nohup | DECS

Home Software Using Nohup What is Nohup? Nohup is a command used to run a process(job) on a server and have it continue after you have logged out or otherwise lost connection to the server. Nohup is best suited for long job runs. Using Nohup Nohup is prese

www.egr.msu.edu

짧은 문서지만 이거마저 읽기 귀찮은 사람들을 위해 간략히 설명 해주자면 다음과 같다.

  • 서버에서 로그아웃 하거나, 갑작스레 연결이 끊어져도 계속 동작하는 프로세스
  • 커맨드가 정상적으로 종료되면 "nohup.out" 이라는 파일로 실행 결과가 남는다.

 

나에게 맞춰서 이해를 해보니 다음과 같이 이해할 수 있었다.

  • nohup으로 실행 시키면 ssh로 접속한 정보로 프로세스를 띄우는 것이 아닌 새로운 프로세스를 띄움.
  • CI서버가 서버를 재시작 할 경우에도 nohup.out 이라는 파일에 서버 시작 성공 여부 데이터가 남겨짐. 
    • 나는 사이드프로젝트엔 golang으로 만든 경량화 ci서버를 사용함.
    • 요것의 단점은 로그를 보기가 힘든거였는데 요걸 보완해주네 ?

 

내가 세팅한 서버의 환경은 master 브랜치에 데이터가 push, merge되면 서버가 계속해서 재시작 되는 구조다

따라서 실패 했을경우에만 로그를 보기 위하여 다음과 같이 스크립트를 짜서 운영할 예정이다.

#! /bin/bash
rm nohup.out
nohup npm run dev &

 

반영 후 잘 동작한다.

$ sudo ./npm_startup.sh
$ nohup: appending output to ‘nohup.out’

 

오늘도 보람찬 하루군

 

'linux' 카테고리의 다른 글

CentOS 7.x의 nginx에 letsencrypt 설치하기.  (0) 2021.06.03

+ Recent posts