You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Electron应用程序作为Windows服务运行

当然有可行的办法!我之前帮团队把Electron应用配置成Windows服务实现开机自启,总结了两个最靠谱的方案,给你一步步拆解:

方案1:用node-windows npm包(纯Node生态方案)

这个方案适合熟悉Node生态的同学,不用额外装第三方工具,直接通过npm包完成服务配置。

  1. 首先安装依赖
    在项目根目录打开管理员权限的命令提示符,运行:
npm install node-windows --save-dev
  1. 写服务配置脚本
    在项目根目录新建install-service.js,内容如下(记得替换成你自己的路径和应用名称):
const { Service } = require('node-windows');

// 配置服务参数
const svc = new Service({
  name: '我的Electron办公助手', // Windows服务列表里显示的名称
  description: '开机自动启动的桌面办公应用', // 服务描述
  script: 'C:\\projects\\my-electron-app\\dist\\win-unpacked\\MyApp.exe', // 打包后的应用exe绝对路径
  workingDirectory: 'C:\\projects\\my-electron-app', // 应用工作目录
  env: [{
    name: 'NODE_ENV',
    value: 'production' // 设置生产环境变量
  }]
});

// 监听安装成功事件,自动启动服务
svc.on('install', () => {
  svc.start();
  console.log('服务安装完成!已经自动启动啦');
});

// 监听错误事件
svc.on('error', (err) => {
  console.error('服务操作出错:', err);
});

// 执行安装
svc.install();

如果是想在开发环境测试(用npm run start启动),可以把script改成Electron的cli路径,比如:

script: 'C:\\projects\\my-electron-app\\node_modules\\electron\\cli.js',
args: ['.'], // 传递启动参数,指向项目根目录
  1. 安装服务
    还是在管理员命令行里运行:
node install-service.js

执行完后,去Windows的「服务」列表里就能找到你配置的服务,默认已经设为自动启动了。

要是想卸载服务,新建uninstall-service.js,内容差不多,把最后一行改成svc.uninstall()就行。

⚠️ 注意:

  • 必须用管理员权限运行命令,否则会安装失败
  • 路径一定要用绝对路径,别用相对路径,避免服务找不到文件
  • 开发环境测试时,服务可能不会显示Electron窗口(因为Windows服务默认在无桌面的会话0运行),这时候可以看方案2的解决办法

方案2:用NSSM工具(通用Windows服务管理器)

NSSM是个老牌的Windows服务管理工具,号称「Non-Sucking Service Manager」,能把任何程序注册成服务,比node-windows更灵活,适合不想碰代码的同学。

  1. 下载并配置NSSM
    去官网下载对应你系统的版本(32/64位),解压后把nssm.exe放到C:\Windows\System32目录,这样就能在命令行直接调用了。

  2. 安装服务
    打开管理员命令提示符,运行:

nssm install 我的Electron应用服务

这时候会弹出一个图形配置窗口,重点配置这几个地方:

  • Application标签:
    • Path:如果是生产环境,选打包后的exe路径;如果是开发环境,选npm.cmd的路径(一般在C:\Program Files\nodejs\npm.cmd)
    • Arguments:如果选的是npm.cmd,填run start;exe的话留空就行
    • Working Directory:填项目根目录(npm启动)或者exe所在目录
  • Log On标签:如果需要显示Electron窗口,别选「Local System account」,选你当前的用户账户,还要勾选「Allow service to interact with desktop」
  • Startup type:改成Automatic(自动启动)

配置完点OK,服务就安装好了,去服务列表里启动它就行。

  1. 管理服务
  • 修改服务配置:nssm edit 我的Electron应用服务
  • 删除服务:nssm remove 我的Electron应用服务 confirm

⚠️ 注意:

  • 开发环境用npm启动的话,要确保Node环境已经正确配置到系统路径里,不然服务找不到npm
  • 如果服务启动后看不到窗口,一定检查Log On标签的设置,必须允许和桌面交互,且用普通用户账户登录

常见问题小Tips

  • 服务启动失败? 去看日志找原因:node-windows的日志默认在C:\Users\你的用户名\AppData\Roaming\服务名称;NSSM可以在配置窗口的「Logging」标签设置日志路径
  • 会话0隔离问题? Windows服务默认跑在会话0,这个会话没有桌面,所以需要UI的应用必须配置服务用普通用户登录并允许桌面交互,这样服务会在你登录后的会话里运行,显示窗口
  • 开发/生产环境区别? 开发环境用npm启动的服务稳定性不如生产环境的打包exe,建议正式部署时用打包后的程序配置服务

内容的提问来源于stack exchange,提问作者karateman10998

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 17:06:52