NodeJS在windows下怎么启动守护进程?

NodeJS在windows下怎么启动守护进程?

forever 在windows不知道怎么回事老是启动就挂了,pm2在windows下又装不上。求解!请给个解决方案,!多谢了各位大神!

10 回复

在Windows环境下启动Node.js应用的守护进程确实存在一些挑战,因为这些工具(如foreverpm2)通常在Linux环境中表现得更好。不过,我们可以通过其他方法来实现这一目标。以下是几种可能的解决方案:

方法一:使用nssm(Non-Sucking Service Manager)

nssm是一个可以将任何程序作为Windows服务运行的工具,这样即使你的电脑重启,该服务也会自动启动。

步骤:

  1. 下载并安装nssm

    • 访问nssm官网下载最新版本的nssm。
    • 解压后,将文件夹路径添加到系统环境变量中。
  2. 创建Node.js服务 打开命令提示符(以管理员身份运行),然后执行以下命令:

    nssm install MyNodeApp
    

    这会打开一个GUI界面,让你配置服务信息。你需要指定Node.js可执行文件的路径以及你的应用程序入口文件的位置。

  3. 启动服务 安装完成后,你可以通过服务管理器启动该服务,或者在命令行中使用:

    net start MyNodeApp
    
  4. 停止服务 如果需要停止服务,可以在命令行中使用:

    net stop MyNodeApp
    

示例代码

假设你有一个简单的Node.js应用位于C:\path\to\app\index.js,你想要将其作为服务运行:

# 创建服务
nssm install MyApp C:\path\to\node.exe C:\path\to\app\index.js

# 启动服务
net start MyApp

方法二:使用批处理脚本

如果你不想安装额外的工具,也可以编写一个简单的批处理脚本来监控并重启你的Node.js应用。

示例批处理脚本

创建一个名为startApp.bat的文件,内容如下:

@echo off
:start
C:\path\to\node.exe C:\path\to\app\index.js
if %errorlevel% neq 0 (
    echo Application has crashed with error code %errorlevel%. Restarting...
    timeout /t 5 /nobreak >nul
    goto start
)

运行这个批处理文件就可以保持你的Node.js应用一直运行。

这两种方法都可以帮助你在Windows环境中有效地管理和维护Node.js应用的运行状态。


  1. 推荐解决方案:找到并解决导致forever挂掉的问题,仍然使用forever

  2. 可选方案: 把你的node.js应用安装为一个windows服务,具体方法见这个帖子

如何定义服务失败之后的回复操作?

  • 启动控制面板->管理工具->服务
  • 选中刚才安装的服务,双击,在出现的面板中选择"恢复"
  • 定义第一次、第二次和第三次失败之后的操作,例如:重新启动服务或者执行指定的程序等等。

forever 不支持windows .

生产环境还是用linux吧…

当我有这个念头的时候…直接就换成linux了

pm2可以在win下使用

windows当然是写成service了

挖个坟,pm2支持windows了

挖的一手好坟

攒够钱就上一台mac!哈哈哈哈

在Windows环境下启动Node.js应用作为守护进程(后台运行)可以使用一些替代方案,因为像foreverpm2这些工具在Windows下的支持并不完善。以下是几种可行的方法:

方法1: 使用nssm (Non-Sucking Service Manager)

nssm可以将任何可执行文件注册为Windows服务,包括Node.js应用。

安装nssm

首先下载nssm并解压到某个目录,比如C:\nssm

创建Node.js服务

打开命令提示符或PowerShell,然后输入以下命令来创建一个服务:

cd C:\nssm
nssm install MyNodeService

这会弹出一个GUI窗口,在Path中填写你的Node.js应用路径,在Startup directory中填写应用所在的目录,在Arguments中填写你的应用入口文件。例如:

  • Path: C:\path\to\node.exe
  • Startup directory: C:\path\to\your\application
  • Arguments: app.js

点击“Install service”按钮,安装完成后通过服务管理器启动服务即可。

方法2: 使用node-windows

node-windows是一个Node.js模块,允许你以Windows服务的形式运行Node.js应用。

安装node-windows

在你的Node.js项目中,通过npm安装:

npm install --save node-windows

创建服务

在你的项目根目录创建一个名为service.js的文件,并添加以下内容:

var Service = require('node-windows').Service;

// 创建一个新的服务对象
var svc = new Service({
  name: 'MyNodeApp',
  description: 'My Node.js application',
  script: 'C:\\path\\to\\your\\app.js'
});

svc.on('install', function () {
  svc.start();
});

svc.install();

然后在命令行中运行该脚本:

node service.js

这将安装并启动你的Node.js应用作为一个Windows服务。

以上两种方法都可以有效地在Windows上运行Node.js应用作为守护进程。根据你的具体需求选择最适合的方法。

回到顶部