我正在编写一个服务,它基本上负责打开和关闭其他服务,但它们需要按特定顺序打开和关闭。
SVCMAIN公司
一、SvcMasterPool1
二。SVC主池2
三、SVCMasterPool3
……
一、svcchildpool1
二svcchildpool2号
三、svcchildpool3
.....
规则如下:
要停止服务:
如果#1要被停止,其他一切都需要在它之前被停止。
如果需要停止2中的任何内容,则需要首先停止3中的匹配服务。(svcchildpool1必须在svcmasterpool1之前停止)
无需任何先决条件即可停止#3中的服务。
要启动服务:
它与停止序列正好相反。
1。要启动#3中的服务,需要启动#2和#1中的匹配svc
2.2中的服务需要1才能启动
三。无#1的前提条件
主SVC和子SVC的数量可以随时间增加或减少。我不想在我的代码中硬编码逻辑,我正在考虑用正则表达式驱动它。我被难住的是从3得到匹配的SVC。如果我知道我需要停止“svcmasterpool2”,我该如何想出“svcchildpool2”。我可以有一个regex来匹配所有的SvcChildPoolX,但无法找到匹配等效子级的解决方案。
欢迎提供任何帮助或其他更合适的建议。
我计划使用一个数据库,但我不想添加单个服务器的序列因此有了使用RegEx的想法所以我只是存储模式并在所有服务器上使用它。
谢谢。

最佳答案

如果在Windows中正确设置了服务,则它们可以报告依赖于它们的内容。
您可以使用ServiceController来启动和停止服务,并使用其属性DependentServices来处理依赖于它们的启动和停止。
相关问题:
Restart a service with dependent services?

07-26 09:38