Windows服务管理

2021/4/4·4 views

通常可以通过运行 -> services.msc 启动Windows服务管理,但是可以做的操作有限,所以主要介绍下命令行下如何管理服务。因为需要管理员权限,所以通过以下步骤启动命令行/Powershell(管理员): 运行 -> 输入cmd -> 按下ctrl+shift+enter键。

首先介绍一款Windows包管理工具Chocolatey,官网:https://chocolatey.org/install ,安装完成后可以使用 choco install 软件包 来安装软件,例如choco install nginx,在安装nginx的时候会发现nssm会被自动安装,下面介绍了nssm的用法。

nssm

nssm是一个服务封装程序,它可以将普通exe程序封装成服务,实现开机自启动,同类型的工具还有微软自己的srvany,不过nssm更加简单易用,并且功能强大。

它的特点如下:

  • 支持普通exe程序(控制台程序或者带界面的Windows程序都可以)

  • 安装简单,修改方便

  • 可以自动守护封装了的服务,程序挂掉了后可以自动重启

下载地址:https://nssm.cc/download

常用命令

shell 复制代码
nssm install servername # 创建servername服务,弹出配置界面
nssm start servername # 启动服务
nssm stop servername # 暂停服务
nssm restart servername # 重新启动服务
nssm remove servername # 删除创建的servername服务
nssm edit servername # 更改servername服务,弹出修改界面
nssm set servername 参数名 参数值 # 设置服务参数值

例如安装Nginx,执行nssm install Nginx,弹出窗口配置项说明:

  • Path:运行应用程序的程序

  • Startup directory:应用程序所在的目录

  • Arguments:应用运行的参数

  • Service name:生成服务的名称

最后点击install service 完成windows服务安装,在windows服务列表就能看到创建的服务了。

net

用于操作没有被禁用的服务,它包含了管理网络环境、服务、用户等大部分重要的管理功能

shell 复制代码
net start 服务名 # 启动
net stop 服务名 # 关闭

sc

sc是用于与服务控制管理器和服务进行通信的命令行程序,可打开被禁用的服务。其语法如下

shell 复制代码
sc config 服务名 start= demand  # 手动
sc config 服务名 start= auto # 自动
sc config 服务名 start= disabled # 禁用
sc start 服务名  # 开启服务
sc stop 服务名  # 停止服务
sc query 服务名  # 查看服务状态
sc  delete  服务名   # 删除服务
sc qc 服务名      # 查看服务的配置信息
sc create scname binPath=xxx.exe #创建服务