Windows服务-将任何程序加入服务管理

Microsoft Windows 服务(过去称为 NT 服务)允许用户创建可在其自身的 Windows 会话中长时间运行的可执行应用程序。 这些服务可在计算机启动时自动启动,可以暂停和重启,并且不显示任何用户界面。

这些功能使服务非常适合在服务器上使用,或者需要长时间运行的功能(不会影响在同一台计算机上工作的其他用户)的情况。 还可以在与登录用户或默认计算机帐户不同的特定用户帐户的安全性上下文中运行服务。

因 Windows 自身限制,要求只有满足 Windows 服务协议才允许使用 sc 指令加入到 Windows 服务中进行管控。

NSSM

NSSM(the Non-Sucking Service Manager) 是 Windows 环境下一款免安装的服务管理软件,它可以将应用封装成服务,使之像 Windows 服务可以设置自动启动等。并且可以监控程序运行状态,程序异常中断后自动启动,实现守护进程的功能。不仅支持图形界面操作,也完全支持命令行设置。

同类型的工具还有微软自己的srvany,不过 nssm 更加简单易用,并且功能强大。它的特点如下:

  • 支持普通exe程序(控制台程序或者带界面的Windows程序都可以)
  • 安装简单,修改方便
  • 可以重定向输出(并且支持Rotation)
  • 可以自动守护封装了的服务,程序挂掉了后可以自动重启
  • 可以自定义环境变量

这里面的每一个功能都非常实用,使用NSSM来封装服务可以大大简化我们的开发流程了。

  • 开发的时候是一个普通程序,降低了开发难度,调试起来非常方便
  • 安装简单,并且可以随时修改服务属性,更新也更加方便
  • 可以利用控制台输出直接实现一个简单的日志系统
  • 不用考虑再加一个服务实现服务守护功能

Windows服务-将任何程序加入服务管理
https://blog.cikaros.top/doc/154971c6.html
作者
Cikaros
发布于
2024年4月24日
许可协议