據我所知: supervisor 可以實現修改命令後重啟應用,但是關閉控制台之後,整個程序就掛了。 pm2 則可以後台執行,關閉控制台之後也不影響程序執行,而且有如下眾多功能,且聽我娓娓道來。
首先是 pm2 的安裝
npm install pm2 -g
複製**
啟動應用:
複製**
停止應用:
複製**
檢視當前啟動應用:
pm2 list
複製**
檢視當前所有啟動應用的 log:
pm2 logs
複製**
檢視某一應用的 log :
複製**
基礎用法 plus
以下是 pm2 安裝好後的資料目錄
$home/.pm2 --> will contain all pm2 related files
$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
複製**
我們的 log 資料會持久化到 $home/.pm2/logs 目錄下,如需要查詢相關 log 則找到相應的 log 檔案即可。
命名應用:
複製**
檔案修改後,自動重啟
複製**
注意: 如果使用了 --watch 引數,
複製**
複製**
傳參給 node v8:
複製**
記憶體超過上限自動重啟:
複製**
以當前可用 cpu 數量來開啟 node 程序數量
複製**
pm2 list # 展示程序狀態
pm2 jlist # 以原生 json 資料列印程序清單
pm2 prettylist # 以格式化 json 資料列印程序清單
pm2 describe 0 # display all informations about a specific process
pm2 monit # 監控所有程序
複製**
pm2 logs [--raw] # 以流的方式顯示所有日誌
pm2 flush # 清空所有 log 檔案
pm2 reloadlogs # 過載所有 log
複製**
pm2 stop all # 停止所有程序
pm2 restart all # 重啟所有程序
pm2 stop 0 # 通過程序 id 來停止某個應用
pm2 restart 0 # 通過程序 id 來重啟某個應用
pm2 delete 0 # 通過程序 id 來刪除某個應用
pm2 delete all # 刪除所有應用
複製**
pm2 reset # reset meta data (restarted time...)
pm2 updatepm2 # update in memory pm2
pm2 ping # ensure pm2 daemon has been launched
複製**
配置檔案有 json 和 .yml 檔案兩種格式。配置檔案其實跟普通命令一樣,只是將命令寫進檔案當中,我們可以將引數,環境變數,logs file 寫進檔案當中。而配置檔案對微服務有很好的支援。 json 檔案格式:(檔名需要以 .config.js 結尾)
module.exports = ,
env_production :
},]}複製**
.yml 檔案格式:
- script : ./api.js
instances: 4
exec_mode: cluster
- script : ./worker.js
name : 'worker'
watch : true
env :
node_env: development
env_production:
node_env: production
複製**
# 開啟配置檔案內的所有應用
pm2 start ecosystem.config.js
# 開啟配置檔案內的所有應用,並配置環境變數 production
pm2 start ecosystem.config.js --env production
# 停止配置檔案內的所有應用
pm2 stop ecosystem.config.js
# 重啟配置檔案內的所有應用
pm2 start ecosystem.config.js
## 或者
pm2 restart ecosystem.config.js
# 過載配置檔案內的所有應用
pm2 reload ecosystem.config.js
# 刪除配置檔案內的所有應用
pm2 delete ecosystem.config.js
# 以下命令對配置檔案內的單一應用生效
複製**
在 dockerfile 中執行如下命令,安裝 pm2
run npm install pm2 -g
複製**
複製**
用下面這行命令替代上面這條命令:
複製**
官網:keymetrics 操作介面如下,看文件操作入門很簡單,這裡我就不再贅述了。
nodejs的PM2程序管理
pm2 node.js程序管理工具 npm i pm2 g 守護程序 服務掛掉後自動重啟 多程序 更好的裡有cpu和記憶體 pm2使用 啟動服務 在package.json的scripts中新增 prd cross env node env production pm2 start bin www ...
使用pm2管理nodejs應用
pm2是乙個node.js的程序管理器,因為nodejs的單程序特性,儲存程序不死掉,自動過載是十分重要的,目前只支援liunx平台 1.安裝pm2 前提安裝了node.js npm install pm2 g 2.用pm2啟動nodejs應用 每乙個應用取乙個應用名稱,不要用系統自己分配應用名稱 ...
PM2部署nodejs專案
1.全域性安裝pm2 npm install g pm2 安裝最新版本pm2 npm install pm2 latest g 更新記憶體中的pm2 pm2 update 2.啟動專案,執行啟動檔案 pm2 start server.js 3.列出pm2管理的所有程序資訊 pm2 list 4.顯示...