标签:下载 lis info 日志记录 appname 标示 设置 tar 无法
1、下载安装
npm install pm2 -g
pm2 --version
2、基本使用
"prd": "cross-env NODE_ENV=production pm2 start index.js"
执行npm run prd。执行完之后如图
第一个特点是程序已经起来了,第二个是不会占用终端。控制台已经交还给我们,可以用了。
输出一个表,名字是启动的js名字,id是当前列表标示,后面版本,mem内存占了11.7M,现在只有一个list
可以通过pm2 list看到当前列表
3、常用命令
pm2 start 后面可以跟要启动的js,也可以跟配置文件
pm2 list 看到pm2的进程列表
pm2 restart <AppName>/<id> 后面接app name或者id,这个就是列表里面的Name和id
pm2 stop <AppName>/<id> 停止某个进程,还可以重新启动起来
pm2 delete <AppName>/<id> 删除某个进程,删除之后就没了,跟stop有区别
pm2 info <AppName>/<id> 查看基本信息
pm2 log <AppName>/<id> 查看日志,打印处理
pm2 monit <AppName>/<id> 监控到进程的cpu和信息
pm2进程守护
用node app.js或者nodemon app.js, 进程崩溃则不能访问
pm2遇到进程奔溃,会自动重启。这是pm2最核心的价值之一
为何使用多进程
1、操作系统会限制一个进程的最大可用内存。单个进程内存受限
2、如果只有一个进程,无法充分利用机器的全部内存
3、如果只有一个进程,无法充分利用多核cpu的优势
多进程和redis
使用多进程会带来一个问题,就是多个进程,内存是无法共享的。所以通过共享redis,实现数据共享
pm2配置和日志记录
pm2.conf.json
{
"apps": {
// 这个写完之后再去运行,这个名字会显示在Name列
"name": "pm2-test-server",
// 启动的文件,如果是koa2,要写成bin/www
"script": "index.js",
// 监听文件变化,自动重启,这里的true or false取决于自己的判断,比如代码发布后,是否要自动重启,一般是false
"watch": true,
// 文件变化自动重启,有哪些是不需要监听的
"ignore_watch": [
"node_modules",
"logs"
],
// 设置多进程的
"instances": 4,
// 错误日志放在logs/err.log文件下
"error_file": "logs/err.log",
// console.log打印的放在logs/out.log文件下
"out_file": "logs/out.log",
// 日志每一行都要标志一个时间
"log_date_format": "YYYY-MM-DD HH:mm:ss"
}
}
然后package的启动方式改成
"prd": "cross-env NODE_ENV=production pm2 start pm2.conf.json",
pm2
标签:下载 lis info 日志记录 appname 标示 设置 tar 无法
原文地址:https://www.cnblogs.com/wzndkj/p/11631221.html