PM2 的安裝與基本使用
步驟一:全域安裝 PM2
為了讓 PM2 能夠在系統的任何地方運行,您需要使用 -g
參數進行全域(Global)安裝。
# 使用 npm 安裝最新的 PM2 版本
npm install pm2 -g
專業建議: 由於您提到使用 Docker Compose 部署,更建議在您的 Node.js 服務(
gg1_node
)的 Dockerfile 中安裝 PM2,並將其設定為容器的 ENTRYPOINT,這樣可以確保應用程式在容器內穩定運行和自動重啟。
步驟二:檢查 PM2 是否安裝成功
安裝完成後,運行版本檢查指令來確認 PM2 已經就緒。
pm2 --version
步驟三:啟動您的 Node.js 應用程式
假設您的 Node.js 應用程式的啟動檔案是 server.js
或 app.js
:
# 啟動您的應用程式,並將其命名為 'aiot-backend'
# 這樣 PM2 會在背景運行它,並監控它是否崩潰
pm2 start server.js --name "aiot-backend"
# (或使用您的專案結構)
# pm2 start ./services/gg1_node/index.js --name "gg1_node"
步驟四:查看運行狀態
使用 list
或 ls
指令可以查看所有由 PM2 管理的應用程式的狀態、PID、記憶體使用量等資訊。
pm2 list
讓 PM2 在系統重啟後自動啟動
這是生產環境中最關鍵的一步。如果您的樹莓派重啟,您會需要 PM2 自動重新啟動所有應用程式。
1. 產生啟動指令碼
PM2 會根據您當前的運行清單(pm2 list
),自動產生一個適用於您系統(Raspberry Pi OS 使用 Systemd)的啟動服務檔案。
# 產生並設定系統啟動服務(適用於 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 服務才能知道要啟動哪些應用程式。
pm2 save
常用 PM2 指令總結
使用 PM2,您可以確保您的 IOT 服務在 Pi 3 上更加健壯和可靠!
沒有留言:
張貼留言