Nodejs在windows系统下的类似PM2的工具,存在么?

Nodejs在windows系统下的类似PM2的工具,存在么?

请不要叮嘱我切换为linux环境,因为我已经努力过啦~

3 回复

当然可以。在Windows系统下,虽然没有直接与PM2完全相同的工具,但有几个类似的进程管理和监控工具可以帮助你管理Node.js应用。其中比较流行的是nssm(Non-Sucking Service Manager)和node-windows

NSSM (Non-Sucking Service Manager)

NSSM是一个可执行文件,可以将任何程序作为Windows服务运行。这使得你可以方便地启动、停止、重启你的Node.js应用,并且能够设置它们在系统启动时自动运行。

示例代码:

  1. 首先,下载并安装NSSM。

  2. 创建一个批处理文件(例如start_node.bat),用于启动你的Node.js应用:

    @echo off
    cd C:\path\to\your\application
    node app.js
    
  3. 使用NSSM创建一个服务:

    nssm install MyNodeApp C:\path\to\start_node.bat
    
  4. 现在,你可以使用以下命令来管理你的服务:

    net start MyNodeApp
    net stop MyNodeApp
    

Node-Windows

node-windows是一个npm包,允许你在Windows上以服务的形式运行Node.js应用程序。它提供了类似于PM2的功能,如日志记录、自动重启等。

示例代码:

  1. 安装node-windows
    npm install -g node-windows
    
  2. 创建一个配置文件(例如my-service.js):
    const Service = require('node-windows').Service;
    
    // 创建服务实例
    const svc = new Service({
        name: 'My Node App',
        description: 'The nodejs.org example web server.',
        script: 'C:\\path\\to\\your\\app.js'
    });
    
    // 安装服务
    svc.on('install', () => {
        svc.start();
    });
    
    svc.install();
    
  3. 运行该脚本:
    node my-service.js
    

通过这些工具,你可以在Windows系统下有效地管理和监控你的Node.js应用,而无需切换到Linux环境。希望这对您有所帮助!


那换 Macbook… 另一个部署相关的工具叫做 forever, 试过了么

在Windows系统下,虽然没有直接与PM2功能完全相同的工具,但有几个替代方案可以实现类似的功能,例如进程管理、日志管理和自动重启等。常用的工具有:

  1. Nodemon:它可以自动重启Node.js应用,当文件发生变化时。它主要用于开发环境。

    示例安装:

    npm install -g nodemon
    

    启动应用:

    nodemon app.js
    
  2. Forever:这是一个简单的Node.js模块,用于确保应用程序始终运行,并在应用程序崩溃时重新启动它们。

    示例安装:

    npm install -g forever
    

    启动应用:

    forever start app.js
    

    查看所有正在运行的应用:

    forever list
    
  3. Node-windows:这是一个可以将Node.js应用作为Windows服务运行的模块,使用它可以方便地在后台启动和停止Node.js应用。

    示例安装:

    npm install node-windows --save
    

    创建一个Windows服务的示例代码:

    const Service = require('node-windows').Service;
    
    // Create a new service object
    const svc = new Service({
      name: 'Hello World',
      description: 'The nodejs.org example web server.',
      script: 'C:\\path\\to\\app.js'
    });
    
    // Listen for the "install" event, which indicates the
    // process is available as a service.
    svc.on('install',function(){
      svc.start();
    });
    
    // Uninstall the service.
    svc.install();
    
  4. Winsw:虽然不是Node.js模块,但它是一个轻量级的可执行程序,可以用来将任何Java或.NET程序安装为Windows服务。对于Node.js应用,你可以通过编写一个简单的XML配置文件来使用Winsw。

以上工具可以在Windows环境下提供类似于PM2的功能。希望这些信息对你有所帮助!

回到顶部