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

posted @ 2019-12-06 12:07  运维人在路上  阅读(3855)  评论(1编辑  收藏  举报