반응형
250x250
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Notice
Recent Posts
Today
Total
관리 메뉴

네이처리 노트

[Node.js] 노드 서비스 유지하기 forever 본문

개발기록/Node.js

[Node.js] 노드 서비스 유지하기 forever

네이처리 2022. 9. 30. 11:24
728x90
반응형

공부하면서 정리한 내용입니다

참고한 내용은 링크를 확인해주세요

 

 


 

 

 

 

📦  forever

SSH 접속을 종료해도 어플리케이션이 종료되지 않고 지속적으로 서비스를 제공

 

 

 

 

설치 및 프로세스 이름부여하기

npm install forever -d  //노드몬설치했던 방식으로 디렉토리에 설치했다.

엄청난 로그가 지나간 후에 경고와 함께 종료됨

package.json 활용하기

{
    "scripts": {
        "nature": "node dir/index.js",
        "natureservice": "forever start --uid nat dir/index.js",  // 실행코드
        "naturestop" : "forever stop nat",	// 종료코드
    },
    "devDependencies": {
    	"nodemon": "^2.0.9"
    }
}

--uid [name] 은 이름을 정해주는 코드로 종료나 재실행할때 사용 가능하다.

스크립트 실행하기

npm run natrueservice	//실행

스크립트 종료하기

npm run naturestop	//종료

종료되면서 로그파일의 위치, uid, pid, 실행시간 등 정보가 출력됨

 

 

 

 

 

 

 

실시간 로그 확인

forever list 	//실행중인 프로세스 확인, 로그경로를 확인할 수 있다

tail -f [file.log] 	//실시간 추적용

tail -[n] [file.log]	 //보고자 하는 라인수를 입력하여 확인 가능. 추적x

 

 

 

자동으로 재실행하기

forever를 이용해서 어플리케이션을 백그라운드 데몬으로 동작시키면서 실시간 디버깅과 테스트를 하려면 forever start 단계에서 옵션을 추가해야 한다.
w 옵션은 파일의 변화를 감지해서 어플리케이션을 재실행하여 nodemon과 동일한 효과를 제공한다.

forever -watch [file]

forever -w [file]	//watch 약자

 

 

 

무분별한 재실행 방지하기 .foreverignore

.foreverignore 파일을 생성합니다. (구글에 검색하면 파일생성해주는 사이트 있음)

# we only care about changes to javascript files
# in the src folder

node_modules/*     #노드모듈 무시 (설치되는동안 여러번 재실행하는 것을 방지)

sessions/*         #세션파일을 사용 중이어서 파일 생성/제거 될 때마다 재실행 하는 것 방지

!dir/*.js          #디렉토리에 .js로 된 파일은 제외한 파일변경시 재실행 방지

.foreverignore파일은 자동으로 숨겨진 파일로 저장된다.

숨겨진파일 확인하기 

ctrl+shift+.  // Mac 단축키

 

"natureservice": "forever start --uid nat -w dir/index.js --watchIgmore",  // 실행코드

 

 

npm root 찾기

npm root -g

🔗리눅스 디렉토리 이름과 의미정리

 

 

 

reference

🔗 Github NPM forever

🔗 forever 사용법 👍🏻

🔗 tail을 이용해서 실시간 로그를 확인하자

 

 

 

 


728x90
반응형
Comments