2025年9月26日 星期五

PM2 的安裝與基本使用(Pi3)

 

PM2 的安裝與基本使用

步驟一:全域安裝 PM2

為了讓 PM2 能夠在系統的任何地方運行,您需要使用 -g 參數進行全域(Global)安裝。

Bash
# 使用 npm 安裝最新的 PM2 版本
npm install pm2 -g

專業建議: 由於您提到使用 Docker Compose 部署,更建議在您的 Node.js 服務(gg1_node)的 Dockerfile 中安裝 PM2,並將其設定為容器的 ENTRYPOINT,這樣可以確保應用程式在容器內穩定運行和自動重啟。

步驟二:檢查 PM2 是否安裝成功

安裝完成後,運行版本檢查指令來確認 PM2 已經就緒。

Bash
pm2 --version

步驟三:啟動您的 Node.js 應用程式

假設您的 Node.js 應用程式的啟動檔案是 server.jsapp.js

Bash
# 啟動您的應用程式,並將其命名為 'aiot-backend'
# 這樣 PM2 會在背景運行它,並監控它是否崩潰
pm2 start server.js --name "aiot-backend"

# (或使用您的專案結構)
# pm2 start ./services/gg1_node/index.js --name "gg1_node"

步驟四:查看運行狀態

使用 listls 指令可以查看所有由 PM2 管理的應用程式的狀態、PID、記憶體使用量等資訊。

Bash
pm2 list

讓 PM2 在系統重啟後自動啟動

這是生產環境中最關鍵的一步。如果您的樹莓派重啟,您會需要 PM2 自動重新啟動所有應用程式。

1. 產生啟動指令碼

PM2 會根據您當前的運行清單(pm2 list),自動產生一個適用於您系統(Raspberry Pi OS 使用 Systemd)的啟動服務檔案。

Bash
# 產生並設定系統啟動服務(適用於 Systemd, 即大多數現代 Linux 發行版)
pm2 startup

執行後,PM2 會輸出一個類似 sudo env PATH=$PATH:/usr/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi 的指令。

2. 執行產生的指令

複製並執行 上一步中 PM2 給出的 sudo env PATH=... 那一長串指令。

3. 儲存當前清單

將目前運行中的應用程式清單(即 pm2 list 看到的內容)儲存起來,這樣在系統重啟時,PM2 服務才能知道要啟動哪些應用程式。

Bash
pm2 save

常用 PM2 指令總結

指令目的
pm2 start <file> --name <name>啟動並監控一個應用程式。
pm2 restart <name>重新啟動指定的應用程式。
pm2 stop <name>停止指定的應用程式。
pm2 delete <name>從 PM2 清單中刪除應用程式。
pm2 list顯示所有應用程式的狀態清單。
pm2 logs顯示所有應用程式的即時日誌。
pm2 monitor顯示一個終端機儀表板,監控 CPU/記憶體使用情況。
pm2 startup產生系統自動啟動的設定指令。
pm2 save儲存當前的應用程式清單,以便重啟後能自動還原。

使用 PM2,您可以確保您的 IOT 服務在 Pi 3 上更加健壯和可靠!

沒有留言:

張貼留言