程序注册为Windows服务

程序注册为Windows服务

为什么要注册服务?🙂在Windows环境下进行日常的项目开发过程中,有时候需要将bat文件或exe文件程序注册为Windows的服务实现开机自己运行(没有用户登陆,服务在开机后也可以照常运行)、且对于那些没有用户交互界面的exe程序来说只要在后台运行即可,无需在桌面显示该exe程序窗口内容、无需用户手动打开,还可以防止用户不小心关闭该程序。

常用的方法有两种,分别为使用微软官方的SC命令和使用第三方工具NSSM,具体使用方法如下:

微软官方的SC命令

  • SC命令说明表
    管理员身份打开cmd命令行输入对应命令即可执行相关操作,执行完通常会有信息反馈。
命令类别命令语法语法示例作用说明
创建服务sc create 服务名称 start=auto binpath=“文件路径” displayname=“显示名称”sc create testexe start=auto binpath=“D:\nssm\test.exe” displayname=“testexe”将D盘中指定路径和名称的exe设置为自启动,名称为testexe的服务
设置自启sc config 服务名 start=autosc config testexe start=auto将testexe服务设置为自动启动
启动服务sc start 服务名sc start testexe启动testexe服务
暂停服务sc pause 服务名sc pause testexe暂停testexe服务
删除服务sc delete 服务名sc delete testexe删除testexe服务

sc.exe create 命令的官方文档

NSSM服务封装工具

  • 说明:NSSM是Windows环境下一款免安装的服务管理软件,它可以将bat文件或者exe应用程序封装成服务,封装后的服务可以设置自动启动等操作;并且可以监控程序运行状态,程序异常中断后自动启动,实现守护进程的功能;不仅支持图形界面操作,也完全支持命令行设置。同类型的工具还有微软自己的srvany;不过NSSM更加简单易用,并且功能强大。

  • 下载官网下载最新版,当前最新版为nssm-2.24.zip

  • 安装:免安装,将下载好的压缩包解压到指定路径下,例如D:\nssm\nssm.exe

  • 使用
    以管理员身份打开cmd控制台,cd定位到nssm程序路径下,使用命令nssm install <服务名> 服务名是你要创建的服务名称。

    在弹出的设置页面Application选项卡中选择程序所在路径

    在Details选项卡中设置显示名和服务描述,根据需要选择Startup type(默认为Automatic-自动)

    在I/O选项卡中设置日志输出路径和对应文件名(一般自己创建)

    点击install service执行后会看到Service “WsService” installed successfully!提示,此时就可以在服务列表中看到了。

Startup type-启动类型:Automatic-自动 | Automatic(Delayed Start)-自动(延迟启动) | Manual-手动 | Disable-禁用

还可以在I/O选项卡中设置日志输出: Input(stdin):输入日志位置 (可不设) | Output(stdout):输出日志位置 | Error(stderr):错误日志位置

其它命令:启动服务:nssm start <服务名> | 停止服务:nssm stop <服务名> | 重启服务:nssm restart <服务名> | 删除服务:nssm remove <服务名> (2.0+版本可用nssm remove <服务名> confirm 避免确认窗口) | 编辑服务:nssm edit <服务名>

其它移除服务方法

执行方法前,需要先停止服务。

  • 方法一:使用cmd命令(管理员),执行 sc queryex type=service state=all 列出所有服务,执行 sc delete 服务名称 移除服务,成功后立即删除。
  • 方法二:使用PoserShell命令(管理员),执行 Get-Service 列出所有服务,执行 sc delete 服务名称 移除服务,无提示即成功,重启系统后生效。
  • 方法三:通过注册表,Win+R打开运行,输入regedit 打开注册表,定位到计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 路径,找到你的服务名称,选择删除即可,重启系统后生效。使用此方法也可以修改服务的一些配置项(如果你清晰用途的话)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值