1、pm2簡介
pm2(process manager)是一個進程管理工具,維護一個進程列表,可以用它來管理你的node進程,負責所有正在運行的進程,并查看node進程的狀態,也支持性能監控,負載均衡等功能。
1.1、使用pm2管理的node程序的好處
2、pm2安裝與使用
2.1、全局安裝
npm install pm2 -g
2.2、常用命令
啟動一個node程序
pm2 start start.js
啟動進程并指定應用的程序名
pm2 start app.js --name application1
集群模式啟動
// -i 表示 number-instances 實例數量 // max 表示 PM2將自動檢測可用CPU的數量 可以自己指定數量 pm2 start start.js -i max
添加進程監視
// 在文件改變的時候會重新啟動程序 pm2 start app.js --name start --watch
列出所有進程
pm2 listpm2 ls // 簡寫
從進程列表中刪除進程
// pm2 delete [appname] | idpm2 delete app // 指定進程名刪除pm2 delete 0 // 指定進程id刪除
刪除進程列表中所有進程
pm2 delete all
查看某個進程具體情況
pm2 describe app
查看進程的資源消耗情況
pm2 monit
重啟進程
pm2 restart app // 重啟指定名稱的進程pm2 restart all // 重啟所有進程
查看進程日志
pm2 logs app // 查看該名稱進程的日志pm2 logs all // 查看所有進程的日志
設置pm2開機自啟
開啟啟動設置,此處是CentOS系統,其他系統替換最后一個選項(可選項:ubuntu, centos, redhat, gentoo, systemd, darwin, amazon)
pm2 startup centos
然后按照提示需要輸入的命令進行輸入
最后保存設置
pm2 save
3、通過pm2配置文件來自動部署項目
確保服務器安裝了pm2,沒有安裝的話先安裝
npm install pm2 -g
3.1 在項目根目錄下新建一個 deploy.yaml 文件
# deploy.yamlapps: - script: ./start.js # 入口文件 name: 'app' # 程序名稱 env: # 環境變量 COMMON_VARIABLE: true env_production: NODE_ENV: productiondeploy: # 部署腳本 production: # 生產環境 user: lentoo # 服務器的用戶名 host: 192.168.2.166 # 服務器的ip地址 port: 22 # ssh端口 ref: origin/master # 要拉取的git分支 ssh_options: StrictHostKeyChecking=no # SSH 公鑰檢查 repo: https://github.com/**.git # 遠程倉庫地址 path: /home # 拉取到服務器某個目錄下 pre-deploy: git fetch --all # 部署前執行 post-deploy: npm install && pm2 reload deploy.yaml --env production # 部署后執行 env: NODE_ENV: production
3.2、配置git的ssh免密認證
在服務器中生成rsa公鑰和私鑰,當前是 centos7 下進行
前提服務器要安裝git,沒有安裝的先安裝git,已安裝的跳過