nodejs pm2 進程管理工具使用指南
引言
nodeJS 發展的今天,無疑是一個巨大的成功。雖然目前還比不上服務端的 JAVA、PHP等語言,但是誰能保證明天呢?~!
pm2 簡介
PM2.5是一個內置的負載平衡器Node.js應用生產過程管理。它允許您永久地保存應用程序,並在不停機的情況下重新加載它們
Install PM2
npm i -g pm2
使用方式
您可以使用命令的方式啟動一個項目。但是本文推薦使用配置文件的方式啟動項目。先說下命令吧。
重要的事情來了 如何使用配置文件~~~~
配置文件
Eg:
{
"apps" : [{
"name":"test",
"cwd":"/data/wwwroot/nodejs",
"script":"./test.sh",
"exec_interpreter":"bash",
"min_uptime": "60s",
"max_restarts": 30,
"exec_mode" :"cluster_mode",
"error_file" :"./test-err.log",
"out_file":"./test-out.log",
"pid_file":"./test.pid"
"watch": false
}]
}
鍵 | 值 | Eg | 描述 |
---|---|---|---|
Name | String | App | 程序名稱 |
Script | String | App.js | 主程序入口 |
Cwd | String | “/data/wwwroot/nodejs” | 啟動目錄 |
Args | String | “-a 13 -b 12” | 包含所有通過CLI腳本字符串參數 |
Interpreter | S | “/usr/bin/python” | 啟動腳本相 默認 nodejs |
interpreter_args | S | ”–harmony” | |
node_args | S | interpreter_args 的別名 | |
instances | N | -1 | 啟動應用程序數目 |
exec_mode | S | “cluster” | 啟動模式 可以是 “cluster” or “fork” 默認 fork |
watch | S || Array | true | 啟用監聽功能 |
ignore_watch | A | [”[/\]./”, “node_modules”] | 忽略的監聽項 |
max_memory_restart | S | '150M' | 程序超過指定內存就重新啟動 |
env | Obj | {“NODE_ENV”: “development”, “ID”: “42”} | 環境變量 |
Env_ | obj | {“NODE_ENV”: “production”, “ID”: “89”} | |
source_map_support | Boolean | true | 默認true 啟動 source Map |
instance_var | S | “NODE_APP_INSTANCE” | |
log_date_format | S | “YYYY-MM-DD HH:mm Z” | 日志的日期格式 |
error_file | S | 錯誤日志路徑 | |
out_file | S | 輸出文件的路徑 | |
combine_logs | Boolean | ||
merge_logs | Boolean | combine_logs的別名 | |
pid_file | S | ||
min_uptime | S | 最小運行時間 | |
listen_timeout | N | 8000 | 如果程序沒有監聽 則會自動重啟 |
kill_timeout | N | 1600 | |
wait_ready |
官網詳細地址
http://pm2.keymetrics.io/docs/usage/application-declaration/#advanced-features