nvm和pm2管理node程序

nvm介绍

nvm官方文档

nvm安装

  • 脚本安装
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash
  • git安装

可能需要2.x以上版本
安装2.x版本git
git ssl报错

cd ~/
git clone https://github.com/nvm-sh/nvm.git .nvm
cd ~/.nvm
git checkout v0.35.1
. nvm.sh
vim ~/.bashrc  文件结尾添加如下代码
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

PS:先安装git

nvm常用命令

npm install -g yarn #安装项目依赖
nvm install node # "node" is an alias for the latest version
nvm install 8.16.2 # or 6.10.0, 8.9.1, etc 安装指定版本
nvm ls-remote #列出可用版本
nvm alias default #设置默认版本
nvm use node #设置使用版本
nvm run node --version #查看运行版本
nvm exec 4.2 node --version #选择指定版本运行当前程序(子shell)
nvm which 5.0 #查看指定版本程序所在路径

pm2介绍

pm2官方文档

pm2安装

  • 需要先安装node
npm install pm2 -g 
#-g 全局安装

pm2常用命令

pm2 start ./server/app.js  
pm2 start ./server/app.js -i 2 --name=publice
pm2 logs
pm2 stop all
pm2 delete all
pm2 reload all
pm2 completion install source ~/.bash_profile #命令补齐
pm2 save #保存服务,生成服务脚本
pm2 startup #添加服务到开机启动
NODE_ENV=serApiProd pm2 start ./bin/www -i 2  --merge-logs --output /home/tomcat/.pm2/logs/sdk_server-out.log --error /home/tomcat/.pm2/logs/sdk_server-error.log --name=sdk_server #多进程合并日志启动

PS:需要node v8以上版本

pm2日志管理

pm2 install pm2-logrotate #开启日志切割

设置格式

pm2 set pm2-logrotate:{paramName} {value}

命令设置具体的参数,支持的参数有:

l Compress:是否通过gzip压缩日志

l max_size:单个日志文件的大小,比如上图中设置为1K(这个其实太小了,实际文件大小并不会严格分为1K)

l retain:保留的日志文件个数,比如设置为10,那么在日志文件达到10个后会将最早的日志文件删除掉

l dateFormat:日志文件名中的日期格式,默认是YYYY-MM-DD_HH-mm-ss,注意是设置的日志名+这个格式,如设置的日志名为abc.log,那就会生成abc_YYYY-MM-DD_HH-mm-ss.log名字的日志文件

l rotateModule:把pm2本身的日志也进行分割  设置true不会对默认的日志分割,设置false会对默认日志进行分割(默认日志和新设置的日志只能生效一种)

l workerInterval:设置启动几个工作进程监控日志尺寸,最小为1

rotateInterval:设置强制分割,默认值是0 0 * * *,意思是每天晚上0点分割

0 0 * * *  对应 分钟 小时 日 月 周几(0-7),*表示通配符

16 * * * *  表示每小时第16分钟分割日志

0 16 * * * 表示每天16点0分分割日志

配置 例子

$ pm2 set pm2-logrotate:max_size 100M
$ pm2 set pm2-logrotate:retain 60
$ pm2 set pm2-logrotate:compress false
$ pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss
$ pm2 set pm2-logrotate:workerInterval 30
$ pm2 set pm2-logrotate:rotateInterval 0 0 * * *
$ pm2 set pm2-logrotate:rotateModule true


配置完成后要重启pm2

pm2 restart all

查看配置

pm2 conf pm2-logrotate
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值