Windows服务设置多个服务依赖项

前言

在做项目中我们常会碰到需要设置系统服务的依赖项的需要,有些程序需要在别的系统服务启动之后再启动。设置单个依赖项很多教程,但是怎么为一个服务添加多个服务依赖项呢?我找了很久也没找到,那就让我来抛砖引玉一波。

1.添加单个服务依赖项

添加单个服务依赖项建议通过命令行的方式添加:
win+r键打开命令行
cmd 命令行添加命令如下:

sc config "服务名称" depend= "依赖的服务名称"

注意:有时服务显示的名称和实际的服务名称不相同,依赖的服务名称,需要点击服务详情查看,以详情页面显示的服务名为准
在这里插入图片描述

比如:

sc config "服务A" depend= "服务B"

如果执行成功则会提示,需要注意的是**"depend="前后都必须带空格,“depend"之前必须要有空格,”="和"服务B"之间必须要有空格**。

设置成功后,A服务依赖B服务启动,即:只有先启动B服务后,A服务才会启动。

添加服务依赖项成功后,我们可以再注册表中看到设置成功的服务依赖项:
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ 找到成功设置依赖项的服务名
找到DependOnService这个多字符串值,里面就是设置成功的服务依赖项。

当然,也可以通过去找注册表,添加"多字符串值"来设置依赖项,但是不太建议,翻找注册表还是挺麻烦的,而且似乎也只能添加一个依赖项,添加多个依赖项时也容易报错。

以上是添加一个服务依赖项的的操作流程,那么如何添加多个服务依赖项呢?

2.添加多个服务依赖项

在cmd命令行输入 sc config "服务A" depend= "服务B" 只能添加一个服务依赖项。如果再执行一次命令sc config "服务A" depend= "服务C",那么后一个添加的服务依赖项(服务C)会覆盖前一个设置的服务依赖项(服务B),这样始终只能设置一个服务依赖项。

因为我的项目包注册成了服务,我要给项目包添加多个服务依赖项,我尝试在 sc config "服务A" depend= "依赖项"指令中把多个依赖项直接空格间隔开,结果命令行提示报错:
多个服务依赖项用斜杠"/"间隔
查看指令提示后,我发现添加多个服务依赖项时,depend= 后面添加的多个依赖项需要用斜杠“/”分隔开,才能成功添加。添加多个服务依赖项的命令如下:

sc config "服务A" depend= "服务1"/"服务2"/"服务3"/......

在这里插入图片描述
执行指令:

sc config "thinvent-auth" depend= "MySQL57"/"RabbitMQ"/"Redis"

这里可以看到,我的项目包设置了三个服务依赖项,分别是MySQL57、RabbitMQ和Redis,多个依赖项之间用斜杠"/"分隔开,就能执行成功。

添加成功后,我们在“服务”–“依存关系”中可以看到添加成功的服务依赖项:
在这里插入图片描述

参考链接

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值