首页 > 系统相关 >windows 开机自动运行nodejs项目 pm2方法实现

windows 开机自动运行nodejs项目 pm2方法实现

时间:2022-10-31 11:45:52浏览次数:75  
标签:pm2 name PM2 nodejs windows list running mysql

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

相关文章

  • Windows - win10保存文件无管理员权限
    win10保存文件无管理员权限在文件资源管理器中打开到没有权限文件夹,右击这个文件夹。点击下方的属性选项在属性的上方菜单栏,找到“安全”选项,点击安全。进入安全的信息......
  • 一文读懂NodeJs知识体系和原理浅析
    node.js初探Node.js是一个JS的服务端运行环境,简单的来说,它是在JS语言规范的基础上,封装了一些服务端的运行时对象,让我们能够简单实现非常多的业务功能。如果我们只......
  • 深入nodejs的event-loop
    此处如无特殊指出的话,eventloop的语境都是指nodejs本文研究所用的nodejs环境是:操作系统window10+nodejs版本号为v12.16.2什么是eventloop?eventloop是指由libuv......
  • 彻底搞懂nodejs事件循环
    nodejs是单线程执行的,同时它又是基于事件驱动的非阻塞IO编程模型。这就使得我们不用等待异步操作结果返回,就可以继续往下执行代码。当异步事件触发之后,就会通知主线程,主线......
  • ubuntu上类似windows记事本编辑器(比gedit还轻量)
    ubuntu下“轻量级”文本编辑器leafpad,比gEdit更轻量。 命令:sudoaptinstallleafpad    来源:https://mp.weixin.qq.com/s/7jLlY80h6zWICIhp0hwtNA......
  • Windows11 22H2_22621.674_MVS_10月最新懒人版
    Moment1(Build22621.675)的功能更新根据微软官网介绍,总共6项新增功能:①资源管理器标签,类似于浏览器的标签,在以往的版本中这是一个隐藏功能,此前我已经给大家介绍了怎么开......
  • windows 2003 oracle 10.2.0.4 升级迁移到linux 11.2.0.4
    文档课题:windows2003oracle10.2.0.4升级迁移到linux11.2.0.4源端:windows200332位+oracle10.2.0.432位+双实例目标端:centos7.964位+oracle11.2.0.464位应......
  • windows下安装redis服务
    下载地址:Releases·microsoftarchive/redis·GitHubRedis支持32位和64位。这个需要根据你系统平台的实际情况选择,这里我们下载Redis-x64-xxx.zip压缩包到D盘......
  • Windows 10 桌面版的 OEM 部署
    Windows10桌面版的OEM部署已准备好构建并测试Windows10台式电脑?本实验演示制作和部署Windows映像的步骤。我们将演示如何使用工具和命令设置端到端部署。可以......
  • OpenGL ES EGL eglCreateWindowSurface
    一.EGL前言二.EGL绘制流程简介三.eglCreateWindowSurface函数简介1.eglCreateWindowSurface函数2.EGLSurface分类四.eglCreateWindowSurface函数使用五.......