Nodejs作为winserver运行

Nodejs作为winserver运行

node写的服务端,怎么让其变成winserver,实现开机启动。 网上找到这篇文章. http://www.grati.org/?p=236

%path%\instsrv ServerName %path%\srvany.exe

启动服务的时候提示这个。

一些服务自动停止,如果他们没什么可做的,例如“性能日志和警报”服务

要怎么搞啊?

3 回复

要在Windows服务器上将Node.js应用程序配置为Windows服务并实现开机启动,可以使用nssm(Non-Sucking Service Manager)工具。nssm是一个简单的命令行工具,用于将任何可执行文件转换为Windows服务。

步骤1:下载并安装 nssm

首先,你需要下载nssm工具。你可以从其官方网站下载最新版本:

# 下载 nssm 工具
wget http://iweb.dl.sourceforge.net/project/nssm/nssm-2.24/nssm-2.24.zip

# 解压下载的文件
unzip nssm-2.24.zip -d nssm

步骤2:创建Node.js服务

假设你的Node.js应用位于C:\myapp\app.js,你可以在命令行中运行以下命令来创建一个名为MyNodeApp的服务:

# 进入 nssm 目录
cd path_to_nssm_directory

# 创建 Node.js 应用的服务
nssm install MyNodeApp C:\path_to_nodejs\node.exe C:\myapp\app.js

这里,C:\path_to_nodejs\node.exe 是Node.js可执行文件的路径,C:\myapp\app.js 是你的Node.js应用的入口文件路径。

步骤3:启动服务

创建服务后,你可以使用net start命令启动它:

net start MyNodeApp

示例代码

假设你的app.js文件如下所示:

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

总结

通过上述步骤,你可以将Node.js应用配置为Windows服务,并确保它在系统启动时自动运行。这种方式不仅方便管理,还可以确保即使在系统重启后,你的应用也能自动启动并继续运行。

如果你遇到服务自动停止的问题,可能是因为你的Node.js应用没有正确处理错误或资源未释放。建议添加适当的错误处理和资源管理代码以提高稳定性。


失误,我少打了个字母。没有删除文章的功能么?

要将一个Node.js应用设置为Windows服务并实现开机启动,你可以使用一些专门为此目的设计的工具,比如 pm2 或者 nssm (Non-Sucking Service Manager)。这里,我将介绍如何使用 pm2 来实现这一目标。

使用 pm2

  1. 安装 pm2

    首先确保已经全局安装了 pm2。如果没有安装,可以通过 npm 安装:

    npm install -g pm2
    
  2. 启动你的 Node.js 应用

    通过 pm2 启动你的应用,并指定路径:

    pm2 start /path/to/your/app.js
    
  3. 设置为开机启动

    让 pm2 在 Windows 启动时自动启动你的应用。首先,需要创建一个名为 ecosystem.config.js 的文件,用于配置你的应用:

    module.exports = {
      apps: [
        {
          name: 'YourAppName',
          script: '/path/to/your/app.js',
          // 其他配置参数...
        }
      ]
    };
    

    然后使用以下命令保存当前进程列表,以便于开机启动:

    pm2 save
    
  4. 设置开机启动

    最后,让 pm2 在 Windows 启动时自动启动所有保存的进程:

    pm2 startup windows
    

    这会生成一段命令,你需要运行它来设置 pm2 为 Windows 服务。这段命令看起来类似这样:

    cscript //B //Nologo C:\Users\YourUsername\AppData\Roaming\npm\pm2\bin\pm2-service-install.vbs
    

完成上述步骤后,你的 Node.js 应用将作为一个 Windows 服务运行,并且在系统启动时自动启动。

总结

这种方法避免了手动注册 Windows 服务的复杂性,使用 pm2 提供了一个更为简单、可靠的方法来管理 Node.js 应用的服务状态。

回到顶部