Nodejs PM2 중국어 문서
PM2 설치
$ npm install pm2 -g
프로그램 시작
$ pm2 start app.js
PM2 업데이트
# pm2
$ pm2 save #
$ npm install pm2 -g
$ pm2 update
목록 소개
pm2 가 설치 되면 아래 디 렉 터 리 가 자동 으로 생 성 됩 니 다.파일 이름 을 보면 거의 무엇 을 하 는 지 알 수 있 으 니 번역 하지 않 겠 습 니 다.
$HOME/.pm2
will contain all PM2 related files $HOME/.pm2/logs
will contain all applications logs $HOME/.pm2/pids
will contain all applications pids $HOME/.pm2/pm2.log
PM2 logs $HOME/.pm2/pm2.pid
PM2 pid $HOME/.pm2/rpc.sock
Socket file for remote commands $HOME/.pm2/pub.sock
Socket file for publishable events $HOME/.pm2/conf.js
PM2 Configuration 입문 강좌
우리 가 가장 좋아 하 는 express 응용 을 예 로 들 자.일반적으로 우 리 는
npm start
을 통 해 응용 프로그램 을 시작 하 는데 사실은 호출 node ./bin/www
이다.그럼 pm2 로 바 꾸 면여기
--watch
인 자 를 사 용 했 습 니 다. express 응용 코드 가 바 뀌 었 을 때 pm2 가 서 비 스 를 다시 시작 하 는 데 도움 을 줄 것 입 니 다.pm2 start ./bin/www --watch
입문 이 너무 간단 해서 할 말 이 없다.공식 문서 로 바로 가기:http://pm2.keymetrics.io/docs/usage/quick-start
상용 명령
시동 을 걸다
매개 변수 설명:
--watch
: 응용 디 렉 터 리 의 변 화 를 감청 하고 변화 가 발생 하면 자동 으로 재 부팅 합 니 다.감청, 듣 지 않 는 디 렉 터 리 를 정확하게 하려 면 설정 파일 을 통 해 하 는 것 이 좋 습 니 다.-i --instances
: 몇 개의 인 스 턴 스 를 사용 하면 부하 균형 에 사용 할 수 있 습 니까?만약 -i 0
또는 -i max
이 라면 현재 기계 의 핵 수 에 따라 실례 수 를 확정한다.--ignore-watch
: 감청 한 디 렉 터 리 / 파일 을 제외 하고 특정한 파일 이름 일 수도 있 고 정규 일 수도 있다.예 를 들 어 --ignore-watch="test node_modules "some scripts""
-n --name
: 응용 이름.응용 정 보 를 볼 때 사용 할 수 있 습 니 다.-o --output
: 표준 출력 로그 파일 의 경로 입 니 다.-e --error
: 오류 출력 로그 파일 의 경로 입 니 다.--interpreter
:the interpreter pm2 should use for executing app (bash, python...)。예 를 들 어 당신 이 사용 하 는 coffee script 으로 응용 프로그램 을 작성 합 니 다.전체 명령 행 매개 변수 목록: 주소
pm2 start app.js --watch -i 2
다시 시작
pm2 restart app.js
멈추다
특정 응용 을 중지 합 니 다.먼저
pm2 list
을 통 해 응용 프로그램의 이름 (-- name 지정) 이나 프로 세 스 id 를 가 져 올 수 있 습 니 다.pm2 stop app_name|app_id
모든 애플 리 케 이 션 을 중단 하려 면 가능 합 니 다.
pm2 stop all
삭제
유사
pm2 stop
, 다음 과 같다.pm2 stop app_name|app_id
pm2 stop all
프로 세 스 상태 보기
pm2 list
프로 세 스 정보 보기
[root@iZ94wb7tioqZ pids]# pm2 describe 0
Describing process with id 0 - name oc-server
┌───────────────────┬──────────────────────────────────────────────────────────────┐
│ status │ online │
│ name │ oc-server │
│ id │ 0 │
│ path │ /data/file/qiquan/over_the_counter/server/bin/www │
│ args │ │
│ exec cwd │ /data/file/qiquan/over_the_counter/server │
│ error log path │ /data/file/qiquan/over_the_counter/server/logs/app-err-0.log │
│ out log path │ /data/file/qiquan/over_the_counter/server/logs/app-out-0.log │
│ pid path │ /root/.pm2/pids/oc-server-0.pid │
│ mode │ fork_mode │
│ node v8 arguments │ │
│ watch & reload │ │
│ interpreter │ node │
│ restarts │ 293 │
│ unstable restarts │ 0 │
│ uptime │ 87m │
│ created at │ 2016-08-26T08:13:43.705Z │
└───────────────────┴──────────────────────────────────────────────────────────────┘
프로필
간단히 설명 하 다
yaml
또는 json
서 류 는 개인 이 세탁 한 것 에 달 려 있 습 니 다.json
형식의 프로필 입 니 다. pm2 는 일반적인 js 파일 로 처리 되 기 때문에 주석 을 추가 하거나 코드 를 작성 할 수 있 습 니 다. 이것 은 동적 으로 설정 을 조정 하 는 데 좋 습 니 다.간단 한 예 를 들 어 전체 설정 설명 은 공식 문 서 를 참고 하 십시오.
{
"name" : "fis-receiver", //
"script" : "./bin/www", //
"cwd" : "./", //
"watch": [ // , ,
"bin",
"routers"
],
"ignore_watch" : [ //
"node_modules",
"logs",
"public"
],
"watch_options": {
"followSymlinks": false
},
"error_file" : "./logs/app-err.log", //
"out_file" : "./logs/app-out.log", //
"env": {
"NODE_ENV": "production" // ,
}
}
자동 재 부팅
앞에서 언급 했 듯 이 명령 줄 을 붙 이 고 여 기 를 더 클릭 하 세 요.
pm2 start app.js --watch
여 기 는 전체 항목 을 감시 하 는 파일 로 지정 한 파일 과 디 렉 터 리 만 감청 하려 면 설정 파일
watch
, ignore_watch
필드 를 통 해 설정 하 는 것 을 권장 합 니 다.환경 전환
실제 프로젝트 개발 에서 우리 의 응용 은 항상 여러 환경 에서 배치 해 야 한다. 예 를 들 어 개발 환경, 테스트 환경, 생산 환경 등 이다.서로 다른 환경 에서 가끔 설정 항목 에 차이 가 있 습 니 다. 예 를 들 어 링크 의 데이터베이스 주소 가 다 릅 니 다.
이런 장면 에 대해 pm2 도 잘 지지 할 수 있다.먼저 설정 파일 에서
env_xx
을 통 해 서로 다른 환경의 설정 을 설명 한 다음 에 응용 을 시작 할 때 --env
매개 변 수 를 통 해 실행 환경 을 지정 합 니 다.환경 설정 설명
우선, 설정 파일 에서
env
옵션 을 통 해 여러 환경 설정 을 설명 합 니 다.간단 한 설명:env
는 기본 적 인 환경 배치 (생산 환경) 이 고 env_dev
, env_test
는 각각 개발, 테스트 환경 이다.환경 에 따라 NODE_ENV
, REMOTE_ADDR
필드 의 값 이 다르다 는 것 을 알 수 있다.process.env.REMOTE_ADDR
등 을 통 해 설정 에 있 는 생명의 변 수 를 읽 을 수 있 습 니 다. "env": {
"NODE_ENV": "production",
"REMOTE_ADDR": "http://www.example.com/"
},
"env_dev": {
"NODE_ENV": "development",
"REMOTE_ADDR": "http://wdev.example.com/"
},
"env_test": {
"NODE_ENV": "test",
"REMOTE_ADDR": "http://wtest.example.com/"
}
시작 표시 환경
아래 를 통 해 스 크 립 트 (개발 환경) 를 시작한다 고 가정 하면, 이때
process.env.REMOTE_ADDR
의 값 은 상응하는 것 이다http://wdev.example.com/ 스스로 시험 해 볼 수 있다.pm2 start app.js --env dev
부하 균형
명령 은 다음 과 같 습 니 다. 세 프로 세 스 를 시작 하 는 것 을 표시 합 니 다.만약
-i 0
기계 의 현재 핵 수 에 따라 가능 한 한 많은 프로 세 스 를 자동 으로 시작 합 니 다.pm2 start app.js -i 3 #
pm2 start app.js -i max # CPU ,
참고 문서: 클릭 하여 보기
로그 보기
로그 파일 을 열 어 로 그 를 볼 수 있 는 것 외 에
pm2 logs
를 통 해 실시 간 로 그 를 볼 수 있다.이 점 은 온라인 문제 에 대한 조사 가 매우 중요 하 다.예 를 들 어 어떤 node 서비스 가 갑자기 이상 하 게 재 부팅 되 었 다 면 pm2 에서 제공 하 는 로그 도 구 를 통 해 실시 간 로 그 를 볼 수 있 습 니 다. 스 크 립 트 오류 와 같은 이상 재 부팅 여 부 를 볼 수 있 습 니 다.
pm2 logs
명령 tab 완성
실행
pm2 --help
을 보면 pm2
지원 하 는 하위 명령 이 매우 많은 것 을 볼 수 있 습 니 다. 이때 자동 으로 완성 하 는 기능 이 매우 중요 합 니 다.다음 명령 을 실행 합 니 다.축하합니다. 이미 tab 를 통 해 자동 으로 완성 할 수 있 습 니 다.디 테 일 은 여기 참고 하 세 요.
pm2 completion install
source ~/.bash_profile
시동 을 걸다
pm2 startup
를 통 해 자동 시동 을 걸 수 있다.디 테 일 참고 가능.대략적인 절 차 는 아래 와 같다.pm2 save
통 해 저장 합 니 다.pm2 startup [platform]
을 통 해 자동 작 동 명령 을 생 성 합 니 다.(콘 솔 출력 보기) node args 에 전송
명령 행 과 설정 파일 을 통 해 직접 예 를 들 수 있 습 니 다.
명령 줄:
pm2 start app.js --node-args="--harmony"
프로필:
{
"name" : "oc-server",
"script" : "app.js",
"node_args" : "--harmony"
}
실례 설명
centos
에서 다음 명령 을 실행 하면 됩 니 다.실행 이 끝 난 후에 기 계 를 다시 시작 해서 설정 이 성 공 했 는 지 확인 하 는 것 을 강력 히 권장 합 니 다.[root@iZ94wb7tioqZ option_analysis]# pm2 save
[root@iZ94wb7tioqZ option_analysis]# pm2 startup centos
[PM2] Generating system init script in /etc/init.d/pm2-init.sh
[PM2] Making script booting at startup...
[PM2] /var/lock/subsys/pm2-init.sh lockfile has been added
[PM2] -centos- Using the command:
su -c "chmod +x /etc/init.d/pm2-init.sh; chkconfig --add pm2-init.sh"
[PM2] Done.
[root@iZ94wb7tioqZ option_analysis]# pm2 save
[PM2] Dumping processes
모니터링 (모니터)
현재 pm2 를 통 해 실행 중인 프로 세 스 의 상 태 를 보 려 면 다음 명령 을 실행 하 십시오.
pm2 monit
유사 출력 보기
[root@oneday-dev0 server]# pm2 monit
⌬ PM2 monitoring (To go further check out https://app.keymetrics.io)
[ ] 0 %
⌬ PM2 monitoring (To go further check o[||||||||||||||| ] 196.285 MB
● fis-receiver [ ] 0 %
[1] [fork_mode] [||||| ] 65.773 MB
● www [ ] 0 %
[2] [fork_mode] [||||| ] 74.426 MB
● oc-server [ ] 0 %
[3] [fork_mode] [|||| ] 57.801 MB
● pm2-http-interface [ ] stopped
[4] [fork_mode] [ ] 0 B
● start-production
[5] [fork_mode]
메모리 사용 상한 선 초과 자동 재 부팅
응용 프로그램 을 원 하 시 면 메모리 사용 상한 선 을 초과 한 후 자동 으로 다시 시작 합 니 다.
--max-memory-restart
인 자 를 추가 할 수 있 습 니 다.(대응 하 는 설정 항목 이 있 음)pm2 start big-array.js --max-memory-restart 20M
상용 명령 일람
# General
$ npm install pm2 -g # PM2
$ pm2 start app.js # , , Start, Daemonize and auto-restart application (Node)
$ pm2 start app.py # , , python Start, Daemonize and auto-restart application (Python)
$ pm2 start npm -- start # , , node Start, Daemonize and auto-restart Node application
# ( node ) Cluster Mode (Node.js only)
$ pm2 start app.js -i 4 # , 4 Start 4 instances of application in cluster mode
# , , it will load balance network queries to each app
$ pm2 reload all # 0 Zero Second Downtime Reload
$ pm2 scale [app-name] 10 # 10 Scale Cluster app to 10 process
# Scale Cluster app to 10 process
$ pm2 list # PM2 List all processes started with PM2
$ pm2 monit # cpu Display memory and cpu usage of each app
$ pm2 show [app-name] # Show all informations about application
# Log management
$ pm2 logs # Display logs of all apps
$ pm2 logs [app-name] # Display logs for a specific app
$ pm2 logs --json # json Logs in JSON format
$ pm2 flush
$ pm2 reloadLogs
# Process State Management
$ pm2 start app.js --name="api" # api。 Start application and name it "api"
$ pm2 start app.js -- -a 34 # , “-a 34” 。 Start app and pass option "-a 34" as argument
$ pm2 start app.js --watch # , 。Restart application on file change
$ pm2 start script.sh # bash 。Start bash script
$ pm2 start app.json # app.json 。Start all applications declared in app.json
$ pm2 reset [app-name] # 。Reset all counters
$ pm2 stop all # 。Stop all apps
$ pm2 stop 0 # id 0 。Stop process with id 0
$ pm2 restart all # 。Restart all apps
$ pm2 gracefulReload all # , 。Graceful reload all apps in cluster mode
$ pm2 delete all # 。Kill and delete all apps
$ pm2 delete 0 # id 0 。Delete app with id 0
# / Startup/Boot management
$ pm2 startup # init , pm2。Detect init system, generate and configure pm2 boot on startup
$ pm2 save # 。Save current process list
$ pm2 resurrect # 。Restore previously save processes
$ pm2 unstartup # 。Disable and remove startup system
$ pm2 update # , PM2 。Save processes, kill PM2 and restore processes
$ pm2 generate # json 。Generate a sample json configuration file
# Deployment
$ pm2 deploy app.json prod setup # “ ” 。 Setup "prod" remote server
$ pm2 deploy app.json prod # “ ” 。 Update "prod" remote server
$ pm2 deploy app.json prod revert 2 # “ ” 2。Revert "prod" remote server by 2
# Module system
$ pm2 module:generate [name] # [name] 。Generate sample module with name [name]
$ pm2 install pm2-logrotate # ( )。Install module (here a log rotation system)
$ pm2 uninstall pm2-logrotate # 。Uninstall module
$ pm2 publish # ,git push npm 。Increment version, git push and npm publish
프로 세 스 관리
실행 중인 프로그램 목록
$ pm2 list
응용 프로 세 스 를 간단하게 관리 합 니 다.
$ pm2 stop
$ pm2 restart
$ pm2 delete
CPU / 프로 세 스 모니터링
모든 시작 프로 세 스 모니터링:
$ pm2 monit
로그 시설
지정 한 프로 세 스 나 모든 프로 세 스 의 로 그 를 실시 간 으로 표시 합 니 다.표준, 원본, JSON, 형식 출력 을 제공 합 니 다.
$ pm2 logs ['all'|app_name|app_id] [--json] [--format] [--raw]`
예:
$ pm2 logs APP-NAME # Display APP-NAME logs
$ pm2 logs --json # JSON output
$ pm2 logs --format # Formated output
$ pm2 flush # Flush all logs
$ pm2 reloadLogs # Reload all logs
시작 스 크 립 트 생 성
/* PM2 , PM2 。
init , :systemd(Ubuntu 16,CentOS,Arch),upstart(Ubuntu 14/12),launchd(MacOSx,Darwin),rc.d(FreeBSD)。
init + PM2 。 Auto detect init system + generate and setup PM2 boot at server startup */
$ pm2 startup
# . Manually specify the startup system
# :systemd,upstart,launchd,rcd。
$ pm2 startup [platform]
# PM2 。Disable and remove PM2 boot at server startup
$ pm2 unstartup
다시 시작 할 때 프로 세 스 목록 저장 / 동결:
$ pm2 save
모듈 시스템 모듈 시스템
PM2 는 간단 하고 강력 한 모듈 시스템 을 삽입 했다.설치 모듈 은 간단 합 니 다:
$ pm2 install
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.