【Node小白入門】Node服務部署工具之pm2
寫在前面,大家好!我是【跨考菌】,一枚跨界的程式猿,專注於後臺技術的輸出,目標成為
全棧攻城獅
!這部落格是對我跨界過程的總結和思考。如果你也對Java
、後端技術
感興趣,抑或是正在糾結於跨界,都可以關注我的動態,讓我們一起學習,一起進步~
我的部落格地址為:【跨考菌】的部落格
目錄
通常我們啟動一個node服務多是採用node或者nodemon命令啟動服務,一旦命令列關閉,服務就掛掉了,為了將node服務作為一個後臺服務執行,可以使用pm2命令來統一管理node服務並作為後臺服務執行。
1 pm2命令入門
pm2 是一個帶有負載均衡功能的Node應用的程序管理器.當你要把你的獨立程式碼利用全部的伺服器上的所有CPU,並保證程序永遠都活著。
安裝:
npm install -g pm2
使用:
啟動應用 pm2 start app.js
[[email protected] server]# pm2 start app.js
[PM2] Starting /www/server/yapi/vendors/server/app.js in fork_mode (1 instance)
[PM2] Done.
┌──────────┬────┬─────────┬──────┬───────┬────────┬─────────┬────────┬─────┬──────────┬──────┬──────────┐
│ App name │ id │ version │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │
├──────────┼────┼─────────┼──────┼───────┼────────┼─────────┼────────┼─────┼──────────┼──────┼──────────┤
│ app │ 0 │ 1.7.1 │ fork │ 21501 │ online │ 0 │ 0s │ 0% │ 2.9 MB │ root │ disabled │
└──────────┴────┴─────────┴──────┴───────┴────────┴─────────┴────────┴─────┴──────────┴──────┴──────────┘
Use ` pm2 show <id|name>` to get more details about an app
[[email protected] server]#
重啟應用 pm2 restart app.js
顯示程序列表 pm2 list
停止某應用 pm2 stop app_name|app_id
停止所有應用 pm2 stop all
儲存現有列表資料pm2 save
:開機後會自動載入已儲存的應用列表進行啟動
[[email protected] server]# pm2 save
[PM2] Saving current process list...
[PM2] Successfully saved in /root/.pm2/dump.pm2
[[email protected] server]#
進行設定開機啟動 pm2 startup
更多pm2命令可以參考:https://blog.csdn.net/sunscheung/article/details/79171608
2 pm2部署node服務並設定開機自啟動
執行node.js服務的時候,如果伺服器不小心或者因為其他原因重啟了,服務不會跟著重啟,需要手動執行服務,這樣肯定是很不方便的,當然可以通過shell指令碼進行啟動,不過這樣的不利於服務管理。可以通過pm2進行管理。
第一步:
執行 pm2 startup
,即在/etc/init.d/目錄下生成pm2-root的啟動指令碼,且自動將pm2-root設為服務。
第二步:
執行 pm2 save
,會將當前pm2所執行的應用儲存在/root/.pm2/dump.pm2下,當開機重啟時,執行pm2-root服務指令碼,並且到/root/.pm2/dump.pm2下讀取應用並啟動。
[[email protected] server]# pm2 save
[PM2] Saving current process list...
[PM2] Successfully saved in /root/.pm2/dump.pm2
[[email protected] server]#
centos7 可以通過systemctl檢視服務狀態
[[email protected] server]# systemctl status pm2-root
● pm2-root.service - PM2 process manager
Loaded: loaded (/etc/systemd/system/pm2-root.service; enabled; vendor preset: disabled)
Active: inactive (dead)
Docs: https://pm2.keymetrics.io/
[[email protected] server]#
這樣的話,你正在執行的pm2服務開機之後就可以自啟動了。