2

我应该将 GoLang 编译的文件 .exe 转换为 Windows 中的服务,但由于该服务是使用外部的 9 个参数执行的,所以我决定使用 SC 将 .exe 作为服务,我的语法是,

sc create myservice binPath= "\"PATH\file.exe\" -param1=value -param2=value -param3=value...-param9=value" displayname= "MyServer"  start= auto

服务创建成功,但是当我尝试启动它时,它失败了“服务没有及时响应”..

但是当我使用 nssm 语法创建相同的服务时,

nssm install myservice "PATH\file.exe" -param1=value -param2=value -param3=value...-param9=value

它正在工作,我得到了我的服务的响应,我不知道问题出在 SC 中的语法还是我的服务中......

我什至尝试了许多可能的方法,例如删除 \" 并直接提供参数,binPath= "PATH/file.exe -param1=value -param2=value...param9=value" 但它不起作用,我还尝试在引号内传递参数,它也不起作用:(任何帮助将不胜感激。

4

1 回答 1

4

虽然 SC 很乐意将任何可执行文件安装为 Windows 服务,但它只能用于安装已经是 Windows 服务的可执行文件。如果您使用 SC 安装常规 exe,当您尝试启动服务时,您的服务将失败并出现错误 1053 。您的 Go exe 没有实现 Windows 服务接口,成为这种情况的受害者。

于 2016-06-28T12:38:35.583 回答