Windows 注册系统服务教程(包含bat 脚本)

发布时间 2023-03-22 21:09:34作者: 凉年技术

一、场景

平时会遇到很多需要手动去把一些程序注册成系统服务,例如一些免安装版的中间件、数据库程序等,需要把运行窗口给隐藏起来,做成系统服务管理也方便。

一些整理汇总常用的注册服务方法,包括一些特殊场景。

二、Sc 命令注册 

sc 是用来与服务控制管理器和服务进行通信的命令行程序。也可以将.bat 脚本或 .exe 程序注册成windows服务。

但实际使用的情况来看,使用 sc 命令把 .bat 脚本注册成 windows 服务是有问题的,所以 .bat 脚本可以使用其他方式来注册。

cmd 窗口运行,命令格式:

# 创建服务:
sc create "服务名" DisplayName= "显示名称(注意“=”后有个空格)" start= auto type= own binpath= "程序路径+附加属性"
# 例如:
sc create "Proxy" DisplayName= "Proxy" start= "auto" binPath= "D:\mysql\mysql-proxy-0.8.5-windows-x86-32bit\bin\mysql-proxy-svc.exe  --proxy-backend-addresses=127.0.0.1:6200"
 
# 删除服务:
sc delete 服务名
#例如:
sc delete Proxy

三、Nssm

.bat 脚本文件可以选择此方式,以及其他程序注册系统服务也可以选择此方式。

1、下载

官方下载:NSSM下载

 

该工具可以注册为Windows服务,下载后解压缩,根据实际系统进入目录,可以看到一个 nssm.exe 文件。

2、使用

在 nssm.exe 所在文件夹内运行以下命令:

nessm.exe install

回车后会弹出设置的窗口:

 

 Application Path:选择运行程序,例如:D:\mysql\mysql-proxy-0.8.5-windows-x86-32bit\bin\mysql-proxy-svc.exe

Statup directory:在Application Path 选择好后此位置会自动生成。

Argument:有附加属性或者有的程序需要指定端口之类的可以在这里面设置,例如:--proxy-backend-addresses=127.0.0.1:6200

Service name:服务的名称,例如:Proxy

设置好后点击 Install service 进行注册,然后查看服务中心是否注册上。

如果没有显示或者无法启动服务,可以先手动运行下被注册的程序,例如如果是 .bat 脚本文件,先双击运行下此文件,然后关闭,服务应该就可以正常启动了。