使用 nssm 的 Windows 服务可以工作,但不能与 Windows SC 一起工作

Kam*_*aze 4 windows windows-services nssm

我本来应该将 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
Run Code Online (Sandbox Code Playgroud)

服务创建成功,但当我尝试启动它时,它失败并显示“服务未及时响应”。

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

nssm install myservice "PATH\file.exe" -param1=value -param2=value -param3=value...-param9=value
Run Code Online (Sandbox Code Playgroud)

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

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

Cor*_*ech 6

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