当前位置: 首页 > news >正文

Windows 下让任何 .bat 脚本后台运行的方法:使用 NSSM 注册为服务,告别误关窗口

Windows 下让任何 .bat 脚本后台运行的方法:使用 NSSM 注册为服务,告别误关窗口

前言

在 Windows 系统中,我们经常通过 .bat 脚本启动一些服务或任务,比如启动本地服务、运行爬虫、定时处理脚本等等。

但这些脚本默认在命令行窗口中运行,一旦窗口被关闭,程序就结束了。

有没有办法让 .bat 后台运行,自动守护,不被误关?

答案是:✅ 使用 NSSM 工具,将任何 .bat 或可执行程序注册为 Windows 服务!


目录

  1. 什么是 NSSM?
  2. 安装 NSSM
  3. 将任意 .bat 脚本注册为服务
  4. 更新脚本后的处理方式
  5. 一键重启/卸载服务脚本
  6. 常见用途案例
  7. 总结

1. 什么是 NSSM?

NSSM (Non-Sucking Service Manager) 是一个轻量、开源的工具,可以将任何程序或 .bat 脚本转化为 Windows 服务。

它的最大优势:

  • 能让程序脱离命令行窗口运行
  • 不受用户登录限制,可实现开机自启
  • 避免被误关
  • 支持日志输出
  • 操作简单,经过时间考验

2. 安装 NSSM

  1. 请前往官网下载 NSSM:
    https://nssm.cc/download

  2. 选择适合你系统的版本(如 64 位)

  3. 解压后放到任意目录(如:D:\tools\nssm

  4. (可选)把该目录加入 PATH 环境变量


3. 将任意 .bat 脚本注册为服务

示例:你有一个脚本 run_my_task.bat,路径为 D:\myapp\run_my_task.bat

  1. 打开命令行(需要管理员权限):

    D:\tools\nssm\nssm install my-task
    
  2. 在弹出窗口填写:

    • Path: D:\myapp\run_my_task.bat
    • Startup directory: D:\myapp\
    • 可选设置日志输出
  3. 点击 Install service

  4. 启动服务:

    net start my-task
    

此时你的脚本已后台运行,不再依赖窗口。


4. 更新脚本后需要重启服务吗?

是的,如果你更改了 .bat脚本内容,或他调用的配置/代码发生变化,都需要 重启服务 才生效。

可以用命令:

nssm restart my-task

或者:

net stop my-task
net start my-task

5. 一键管理服务脚本

重启脚本: restart.bat
@echo off
net stop my-task
net start my-task
pause
卸载 NSSM 服务: uninstall.bat
@echo off
nssm remove my-task confirm
pause

6. 常见用途案例

  • 启动 Python/Node/Java 爬虫项目
  • 运行 Webpack/Vite 前端打包服务
  • 本地 Web 服务或 Socket 服务
  • 启动 Elasticsearch、Redis、Kibana 等后端服务
  • 合同、定时运行脚本
  • Git 自动拉取脚本定期执行

总结

NSSM 是一个简单高效、零学习成本的工具,使用它可以将任何 .bat脚本或程序转化为 Windows 服务,实现后台运行、开机自启、无窗口守护,特别适合后端开发和自动化脚本使用场景。


如果觉得有用,欢迎点赞、收藏、评论支持一下!

如需要基于 NSSM 的脚本模板或数据服务化实践案例,欢迎私信或评论交流~

http://www.lqws.cn/news/532009.html

相关文章:

  • 常见的排序方法
  • VUE-----常用指令
  • 如何使用 vue vxe-table 来实现一个产品对比表表格
  • ​​深入解析 Vue 中的 pathRewrite:路径重写规则详解​​
  • 算法 按位运算
  • 光场操控新突破!3D 光学信息处理迎来通用 PSF 工程时代--《自然》子刊:无需复杂算法,这一技术让 3D 光学成像实现 “即拍即得”念日
  • AI智能体——OpenManus 源码学习
  • [3D-portfolio] 版块包装高阶组件(封装到HOC) | Email表单逻辑 | 链式调用
  • Mac mini 跑 DeepSeek R1 及 QwQ-32B模型实测报告
  • 记dwz(JUI)前端框架使用之--服务端响应提示框
  • Jenkins与Kubernetes深度整合实践
  • 从零开始理解百度语音识别API的Python实现
  • Trae IDE 大师评测:驾驭 MCP Server - Figma AI Bridge 一键成就前端瑰宝
  • HDC 2025丨华为云AI原生中间件,构建应用运行的领先架构
  • DAY 43 复习日
  • docker 安装Elasticsearch + kibana + ik分词器
  • (七)Dockerfile文件20个命令大全详解
  • 【数据结构】--排序算法
  • Java--程序控制结构(下)
  • RK3568-休眠唤醒关机开机流程
  • 【NLP】自然语言项目设计02
  • MySQL (一):数据类型,完整性约束和表间关系
  • 12345政务热线系统:接诉即办,赋能智慧城市治理
  • 指标中台+大模型:解密衡石Agentic BI的NL2DSL架构实现
  • Prompt工程解析:从指令模型到推理模型的提示词设计
  • Linux 和 Windows 服务器:哪一个更适合您的业务需求?
  • 黑马JVM解析笔记(四):Javap图解指令流程,深入理解Java字节码执行机制
  • 创建Django项目
  • JVM调优实战 Day 7:JVM线程分析与死锁排查
  • 动态库与静态库【Linux】