一、node安装
软件地址:https://nodejs.org/en/download/
#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 #启动并生成一个配置文件
参考文档: