文章

NSSM

此篇文章是由于我搞不定 Python 的 Windows 服务而诞生的。

NSSM(Non-Sucking Service Manager)是一款优秀的Windows服务管理工具,它为开发者和系统管理员提供了一种简单而强大的方式来将普通应用程序转换为Windows服务。以下是对NSSM的详细介绍:

NSSM的主要特点

  1. 简单易用:NSSM提供了直观的命令行界面和图形用户界面,使得创建和管理服务变得非常简单。
  2. 灵活性强:它可以将几乎任何可执行文件、批处理脚本或其他程序转换为Windows服务,无需修改原始程序的代码。
  3. 自动重启:NSSM能够监控服务的运行状态,在程序崩溃时自动重启服务,提高了系统的稳定性。
  4. 详细日志:提供了详细的日志记录功能,便于故障排查和系统监控。
  5. 参数传递:支持向被管理的程序传递复杂的命令行参数。
  6. 环境变量控制:允许为服务设置特定的环境变量。
  7. 优雅关闭:NSSM会尝试优雅地关闭被管理的程序,而不是强制终止进程。

使用场景

  1. Web服务器:将Node.js、Python或其他语言开发的Web应用转换为Windows服务。
  2. 后台处理程序:将数据处理、任务调度等后台程序转换为服务,确保其持续运行。
  3. 监控工具:将各种系统监控工具转换为服务,实现自动化监控。
  4. 开发环境:在开发环境中快速将应用转换为服务进行测试。

使用方法

  1. 下载并解压NSSM到合适的目录。
  2. 使用命令行或图形界面创建服务: 命令行:nssm install <服务名> <程序路径> [参数] 图形界面:nssm install
  3. 配置服务属性,如启动类型、依赖关系、日志设置等。
  4. 使用Windows服务管理器或NSSM命令来启动、停止或重启服务。

NSSM的优势

  1. 无需编码:不需要修改原始程序就能将其转换为服务。
  2. 轻量级:NSSM本身非常小巧,不会对系统造成额外负担。
  3. 功能丰富:提供了比Windows原生服务管理器更多的功能。
  4. 社区支持:有活跃的社区支持和持续的更新维护。

总结: NSSM是一个强大而灵活的工具,它极大地简化了Windows服务的创建和管理过程。无论是对于开发者还是系统管理员,NSSM都是一个值得拥有的利器,能够提高工作效率和系统稳定性。

使用bat脚本来生成和启动服务

参考资源

本文由作者按照 CC BY 4.0 进行授权