擁抱 pm2 ,為你的 nodejs 應用助力

2021-09-11 13:38:12 字數 3192 閱讀 9643

據我所知: 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.顯示...