PM2使用詳解:Node.js應用的進程管理利器
- 821字
- 4分鐘
- 2024-07-25
PM2 是一個進程管理工具,專為 Node.js 應用程序設計,旨在簡化應用的部署和管理。它提供了應用程序的啟動、停止、重啟、監控等功能,並具有自動重啟、負載均衡、日誌管理等高級特性。以下是 PM2 的詳細介紹和使用方法。
主要功能
- 進程管理:啟動、停止、重啟、刪除應用。
- 監控:實時監控應用的狀態、CPU、內存使用情況。
- 日誌管理:查看和管理應用的日誌。
- 負載均衡:通過集群模式(Cluster Mode)實現負載均衡。
- 自動重啟:在應用崩潰或出現錯誤時自動重啟。
- 啟動腳本:開機時自動啟動應用。
- 配置管理:使用 JSON 配置文件管理多個應用。
安裝 PM2
要使用 PM2,首先需要安裝它。可以通過 npm 安裝:
1npm install -g pm2
基本用法
啟動應用
啟動一個應用,只需使用 pm2 start
命令,並指定應用入口文件:
1pm2 start app.js
查看應用狀態
使用 pm2 list
命令查看當前運行的所有應用及其狀態:
1pm2 list
停止應用
使用 pm2 stop
命令停止指定應用:
1pm2 stop app.js
或者使用應用 ID 停止:
1pm2 stop 0
重啟應用
使用 pm2 restart
命令重啟指定應用:
1pm2 restart app.js
或者使用應用 ID 重啟:
1pm2 restart 0
刪除應用
使用 pm2 delete
命令刪除指定應用:
1pm2 delete app.js
或者使用應用 ID 刪除:
1pm2 delete 0
高級用法
啟動多實例(集群模式)
使用 -i
選項可以啟動多個實例,以利用多核 CPU:
1pm2 start app.js -i max
max
表示啟動與 CPU 核數相等的實例數,你也可以指定具體的實例數,例如 -i 4
啟動 4 個實例。
管理日誌
查看指定應用的日誌:
1pm2 logs app.js
或者查看所有應用的日誌:
1pm2 logs
監控應用
使用 pm2 monit
命令可以實時監控所有應用的狀態:
1pm2 monit
使用 JSON 配置文件
PM2 允許使用 JSON 配置文件來管理應用。首先創建一個 ecosystem.config.js
文件:
1module.exports = {2 apps: [3 {4 name: "app",5 script: "./app.js",6 instances: "max",7 exec_mode: "cluster",8 watch: true,9 env: {10 NODE_ENV: "development",11 },12 env_production: {13 NODE_ENV: "production",14 },15 },16 ],17};
然後使用 pm2 start
命令啟動配置文件中的應用:
1pm2 start ecosystem.config.js
設置開機自啟動
PM2 可以配置為在系統啟動時自動啟動應用。首先,生成啟動腳本:
1pm2 startup
接著保存當前的進程列表:
1pm2 save
重載應用
如果你希望無縫重載應用(不中斷服務),可以使用 pm2 reload
命令:
1pm2 reload app.js
或者使用應用 ID:
1pm2 reload 0
常用命令匯總
- 啟動應用:
pm2 start <app>
- 停止應用:
pm2 stop <app>
- 重啟應用:
pm2 restart <app>
- 刪除應用:
pm2 delete <app>
- 查看應用列表:
pm2 list
- 查看應用日誌:
pm2 logs <app>
- 實時監控:
pm2 monit
- 開機自啟動:
pm2 startup
,pm2 save
通過這些功能,PM2 提供了一套完整的解決方案來管理 Node.js 應用的生命周期,從開發到生產環境的部署,都能夠大大簡化應用管理的複雜度,提高運行的穩定性和可靠性。