node及pm2環境安裝


一、node安裝

軟件地址:https://nodejs.org/en/download/

image

#1、下載軟件包
[root@node ~]# mkdir /app
[root@node ~]# cd /app/
[root@node app]# wget https://nodejs.org/dist/v12.13.1/node-v12.13.1-linux-x64.tar.xz
[root@node app]# ll
total 13740
-rw-r--r-- 1 root root 14067172 Nov 19 16:39 node-v12.13.1-linux-x64.tar.xz

#2.解壓縮
[root@node app]# tar xf node-v12.13.1-linux-x64.tar.xz -C /usr/local/
[root@node app]# cd /usr/local/
[root@node local]# ls
bin  etc  games  include  lib  lib64  libexec  node-v12.13.1-linux-x64  sbin  share  src
[root@node local]# mv node-v12.13.1-linux-x64/ node
[root@node local]# ls
bin  etc  games  include  lib  lib64  libexec  node  sbin  share  src

#3、配置環境變量
[root@node local]# vim /etc/profile
export PATH=/usr/local/node/bin:$PATH
[root@node local]# source /etc/profile

#4、查看是否安裝成功
[root@node local]# node -v
v12.13.1

二、pm2安裝及使用

2.1、簡介

1)PM2是node進程管理工具,可以利用它來簡化很多node應用管理的繁瑣任務,如性能監控、自動重啟、負載均衡等,而且使用非常簡單。

2)PM2的運行需要Node 環境和Npm的支持

2.2、安裝

[root@node local]# npm install -g pm2
/usr/local/node/bin/pm2 -> /usr/local/node/lib/node_modules/pm2/bin/pm2
/usr/local/node/bin/pm2-dev -> /usr/local/node/lib/node_modules/pm2/bin/pm2-dev
/usr/local/node/bin/pm2-docker -> /usr/local/node/lib/node_modules/pm2/bin/pm2-docker
/usr/local/node/bin/pm2-runtime -> /usr/local/node/lib/node_modules/pm2/bin/pm2-runtime
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.2 (node_modules/pm2/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

+ pm2@4.2.0
added 206 packages from 202 contributors in 48.781s

#如果存在網絡問題,可以參考如下文章
https://cnodejs.org/topic/4f9904f9407edba21468f31e

2.3、常用命令

#從svn拉取測試代碼
[root@node ~]# svn checkout svn://admin@xx.xx.xx.xx/dc_h5_20180606/dc_h5
[root@node ~]# ll
drwxr-xr-x  14 root root      4096 Dec  6 14:12 dc_h5

#生成module
[root@node dc_h5]# npm install
[root@node dc_h5]# npm run build

#啟動
[root@node dc_h5]# pm2 start pm2.config.json --env 83
[PM2][WARN] Applications dc_h5 not running, starting...
[PM2] App [dc_h5] launched (2 instances)
┌─────┬────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name   │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0   │ dc_h5  │ default     │ 2.4.3   │ cluster │ 125235   │ 0s     │ 0    │ online    │ 0%       │ 20.9mb   │ root     │ disabled │
│ 1   │ dc_h5  │ default     │ 2.4.3   │ cluster │ 125242   │ 0s     │ 0    │ online    │ 0%       │ 17.1mb   │ root     │ disabled │
└─────┴────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
[root@node dc_h5]# pm2 status
┌─────┬────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name   │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0   │ dc_h5  │ default     │ 2.4.3   │ cluster │ 125235   │ 22s    │ 0    │ online    │ 0%       │ 90.1mb   │ root     │ disabled │
│ 1   │ dc_h5  │ default     │ 2.4.3   │ cluster │ 125242   │ 22s    │ 0    │ online    │ 0%       │ 87.6mb   │ root     │ disabled │
└─────┴────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

其他常用命令

pm2 list              #查看所用已啟動項目
pm2 restart XXX       #重啟
pm2 stop XXX          #停止
pm2 delete XXX        #刪除
pm2 monit             #監視每個node進程的CPU和內存的使用情況
pm2 logs              #顯示所有進程日志
pm2 stop all          #停止所有進程
pm2 restart all       #重啟所有進程
pm2 reload all        #0秒停機重載進程 (用於 NETWORKED 進程)
pm2 stop 0            #停止指定的進程
pm2 restart 0         #重啟指定的進程
pm2 startup           #產生 init 腳本 保持進程活着
pm2 web               #運行健壯的 computer API endpoint (http://localhost:9615)
pm2 delete 0          #殺死指定的進程
pm2 delete all        #殺死全部進程

運行進程的不同方式:
pm2 start app.js -i max  #根據有效CPU數目啟動最大進程數目
pm2 start app.js -i 3    #啟動3個進程
pm2 start app.js -x      #用fork模式啟動 app.js 而不是使用 cluster
pm2 start app.js -x -- -a 23  #用fork模式啟動 app.js 並且傳遞參數 (-a 23)
pm2 start app.js --name serverone #啟動一個進程並把它命名為 serverone
pm2 stop serverone    #停止 serverone 進程
pm2 start app.json      #啟動進程, 在 app.json里設置選項
pm2 start app.js -i max -- -a 23   #在--之后給 app.js 傳遞參數
pm2 start app.js -i max -e err.log -o out.log  #啟動並生成一個配置文件

參考文檔:

https://imweb.io/topic/57c8cbb27f226f687b365636

https://www.cnblogs.com/lxg0/p/7771229.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM