노드js로 작성한 서버나 앱이 죽으면 영원히(forever) 자동으로 재실행 해주는 forever 명령어
@@일반적인 사용 설치
[sudo] npm install forever -g
*-g는 글로벌 옵션입니다
@@프로그래밍 방식으로 forever를 사용하는 경우
- 프로젝트 경로로 이동 (cd : 경로 변경 명령)
cd /path/to/your/project
- 프로젝트 내에 forever-monitor 설치 (sudo는 관리자 권한으로 실행하는 명령어)
[sudo] npm install forever-monitor
@@forever 몇가지 명령어
터미널 창을 열고 아래의 명령어를 입력하여 사용합니다.
- 파일 실행
forever start 실행파일.js
- 실행 정지
forever stop 실행파일.js
* 실행파일 명 이외에도 정지명령에 사용 가능 ( Id|Uid|Pid|Index|Script )
- 실행중인 리스트 보기 (Uid, 실행파일, Pid, Id, log파일위치, 실행시간 등의 정보가 있습니다)
forever list
이외의 설명은 help 도움말을 이용하시면 되겠습니다
forever --help
@@Json 형식으로 설정된 파일 실행
프로젝트 내에 json파일에 미리 forever 명령어에 사용할 내용을 작성하고, 해당 파일을 실행하는 방법입니다
. (대충 프로젝트 구조)
├── forever
│ └── development.json <------- forever 미리 설정한 json 파일
└── index.js <-------- development.json에 미리 실행되게 작성돼있는 js파일
// forever/development.json (forever 실행을 위해 작성된 json)
{
// Comments are supported
"uid": "app",
"append": true,
"watch": true,
"script": "index.js",
"sourceDir": "/home/myuser/app",
"logFile": "/home/myuser/logs/forever.log",
"outFile": "/home/myuser/logs/out.log",
"errFile": "/home/myuser/logs/error.log"
}
위에 작성된 development.json 파일을 forever로 실행하여 설정된 옵션에 따른 forever 실행이 가능한가 봅니다
아래의 명령을 이용하여 해당경로의 json파일을 forever 실행 시킵니다.
forever start ./forever/development.json
위는 상대경로이며 절대경로를 이용하여 터미널창에서 실행할수 있습니다
$ forever start /home/myuser/app/forever/development.json
json 구성에 여러개의 앱을 지정하여 다중 앱을 실행할 수 도 있습니다
[
{
// App1
"uid": "app1",
"append": true,
"watch": true,
"script": "index.js",
"sourceDir": "/home/myuser/app1"
},
{
// App2
"uid": "app2",
"append": true,
"watch": true,
"script": "index.js",
"sourceDir": "/home/myuser/app2",
"args": ["--port", "8081"]
}
]
@@프로그램 코드 내에서 forever 실행
forever 버전 0.6.0 이후 부터는 바로 사용이 불가능하고 맨처음 위에서 설치한 forever-monitor의 forever.Monitor를 인스턴스화 시킨 자식을 사용하여 실행시킨다고 합니다.
프로그램 코드내에서 forever를 사용하는 예제는 https://github.com/foreversd/forever/blob/master/lib/forever/cli.js 깃허브 작성자가 올려두었습니다
'개발 > Node.js, javascript' 카테고리의 다른 글
[javascript] Dictionary 간단한 사용정리 (0) | 2021.11.30 |
---|