pm2入門級實操指南(安裝+部署專案)
1.為什麼要用pm2
通常情況下,我們在linux伺服器上部署nodejs的程式,只需要在伺服器上安裝nodejs環境即可,然後node myapp.js,程式就跑起來了。但是發現了一個問題,我用的是xshell進行的遠端連線伺服器,當我本機的xshell斷開或者是關閉後,伺服器端的node服務就停止了,公網無法訪問此應用服務,pm2可以很好的解決此問題,用pm2模組部署的服務,直接在後臺執行nodejs的應用服務,而且程序中斷後會自動重啟,保證了應用服務的可用性。
PM2是node程序管理工具,可以利用它來簡化很多node應用管理的繁瑣任務,如效能監控、自動重啟、負載均衡等,而且使用非常簡單。
2.安裝及啟動應用服務
//1.安裝pm2 npm install -g pm2 //2.執行pm,發現不行,解決問題 -bash: pm2: command not found pm2 //3.同步nodejs npm 版本 curl -0 -L https://npmjs.org/install.sh | sudo sh //4.檢視node安裝目錄,也是pm2的安裝目錄 npm config get prefix //5.進入pm2安裝目錄,測試 pm2 cd /root/node/lib/node_modules/pm2/bin ./ pm2 //6.配置全域性變數 ln -s /root/node/lib/node_modules/pm2/bin/pm2 /usr/local/bin/pm2 //7.測試pm2指令並啟動應用服務 cd pm2 -h cd node/project/EatwhatS pm2 start app.js --watch
3.驗證pm2是否起作用
在xshell關閉遠端連線,然後在公網訪問服務,發現服務正常,然後登陸伺服器檢視程序。
4.在全域性安裝了pm2後pm2指令不可用如何解決
/root/node/bin/pm2 -> /root/node/lib/node_modules/pm2/bin/pm2
/root/node/bin/pm2-dev -> /root/node/lib/node_modules/pm2/bin/pm2-dev
/root/node/bin/pm2-docker -> /root/node/lib/node_modules/pm2/bin/pm2-docker
/root/node/bin/pm2-runtime -> /root/node/lib/node_modules/pm2/bin/pm2-runtime
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/pm2/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
+ [email protected]
updated 1 package in 28.224s
出現pm2不可用,需要修復一下node與npm之間的關係。
curl -0 -L https://npmjs.org/install.sh | sudo sh