PM2 是带有内置负载平衡器的 Node.js 应用程序的生产过程管理器。可以利用它来简化很多 Node 应用管理的繁琐任务,如性能监控、自动重启、负载均衡等。
安装部署
1、我们一般会把 pm2 安装到全局:
npm install pm2 -g
2、安装windows自启动包:
npm install pm2-windows-startup -g
3、创建开机启动脚本文件:
pm2-startup install
注意:并不是到第3步就可以了,需要4、5步操作完,开机启动才有效。
4、使用pm2启用项目:
pm2 start 路径 --name 名称
例如:pm2 start ./app.js –-name xsx // tips:是2个“-”,如果写一个,不会报错,name命名也不会成功的;
5、保存pm2中的项目:
pm2 save
注意:pm2 save很重要, 它保存当前 pm2 正在管理的 NodeJS 服务, 并在开机后恢复这些服务。
重启电脑可以查看( 以表格显示 ):
pm2 ls
如果要卸载服务,执行:
pm2-service-uninstall
本人操作记录:
E:\code\testnode>pm2 start ./running.js --name running
[PM2] Starting E:\code\testnode\running.js in fork_mode (1 instance)
[PM2] Done.
┌─────┬────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├─────┼────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ running │ default │ 1.0.0 │ fork │ 5212 │ 0s │ 0 │ online │ 0% │ 29.4mb │ zb │ disabled │
└─────┴────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
[PM2][WARN] Current process list is not synchronized with saved list. App -a differs. Type 'pm2 save' to synchronize.
E:\code\testnode>pm2 list
┌─────┬────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├─────┼────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ running │ default │ 1.0.0 │ fork │ 5212 │ 8s │ 0 │ online │ 0% │ 38.1mb │ zb │ disabled │
└─────┴────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
[PM2][WARN] Current process list is not synchronized with saved list. App -a differs. Type 'pm2 save' to synchronize.
E:\code\testnode>pm2 save
[PM2] Saving current process list...
[PM2] Successfully saved in C:\Users\zb\.pm2\dump.pm2
E:\code\testnode>
// 导入mysql
const mysql = require('mysql')
// 导入express
const express = require('express')
// 创建服务器
const app = express()
// 通过createPool方法连接服务器
const db = mysql.createPool({
host: '127.0.0.1', // 表示连接某个服务器上的mysql数据库
user: 'root', // 数据库的用户名 (默认为root)
password: '123456', // 数据库的密码 (默认为root)
database: 'qqs',// 创建的本地数据库名称
})
// 通过nodejs获取数据库中的数据 并返回给客户端------------------
app.get('/user', (req, res) => {
// 通过db.query方法来执行mysql 测试是否连接成功
// 查询语句 data 得到的是一个数组, 增删改得到的是受影响的行数
db.query('select TicketNo from ticket', (err, data) => {
if (err) return console.log(err.message); // 连接失败
if (data.length === 0) return console.log('数据为空'); // 数据长度为0 则没有获取到数据
// 否则获取成功,将结果返回给客户端res.send
console.log('----ok');
res.send({
status: 0,
msg: '数据获取成功',
data
})
})
})
// 启动服务器
app.listen(8080, () => {
console.log('running...');
})
标签:pm2,name,PM2,nodejs,windows,list,running,mysql
From: https://www.cnblogs.com/pansidong/p/16843748.html