这是我关于堆栈溢出的第一个问题。希望你的眼睛不会因为我的英语流血太多。长话短说:我无法通过来停止我的自定义windows服务。
我在gitlab CI\CD期间试图实现的目标是:
因此,为了方便,我已经在本地安装了shell gitlab-runner,gitlab服务器可以看到我的本地运行程序。我的windows服务的名称格式如下:"My.Service.Name".
get <my_job_name>包含gitlab-ci.yml,在脚本部分sc.exe queryex My.Service.Name
中包含以下命令(试图获取服务状态)。
命令执行会给我带来错误[SC] EnumQueryServicesStatus:OpenService FAILED 1060: The specified service does not exist as an installed service
。基本上,sc.exe stop My.Service.Name
也因[SC] OpenService FAILED 1060: The specified service does not exist as an installed service
错误而失败。
我的服务是这样创建的:sc create My.Service.Name binPath= "path\to\exe\My.Service.Name.exe -service" DisplayName= My.Service.Name start= delayed-auto depend= MSMQ
。局部查询结果 of sc.exe queryex My.Service.Name
call.
我已经被检查过了:
sc.exe queryex
(通过gitlab)给我的不是所有的服务,我可以在本地的services.msc中看到这些服务。Get-Service -ComputerName .
的所有服务(通过gitlab)sc.exe queryex My.Service.Name
和PowerShell Get-Service | where {$_.name -like "*My.Service.Name*"} or Get-Service -ComputerName .
中的Get-Service提供了所需的结果。gitlab-runner.exe exec shell my_job_name
也为我提供了所需的结果,因此我可以查询服务信息,甚至停止服务。那么,为什么有些服务,包括我的服务,没有在sc.exe和gitlab的结果中列出呢?我怀疑这里有一些许可问题。任何帮助都将不胜感激。
发布于 2020-09-24 09:45:56
我终于明白了问题所在--我搞砸了gitlab-ci.yml作业标签,事实上,另一个gitlab运行程序处理了传入的构建。现在它正像预期的那样工作。
https://stackoverflow.com/questions/64026053
复制相似问题