无法控制使用sc

时间:2016-04-04 08:10:15

标签: windows batch-file service

我使用包含以下指令的批处理文件为我的应用程序创建了一个Windows服务:

sc create <name> binPath= "C:\my\path\" DisplayName= "MyName"

该服务已成功创建,应用程序可以正常运行。 Windows服务管理器在列表中显示该服务,但它没有&#34;已启动&#34;状态,即使它正在运行。点击&#34;开始服务&#34;错误与&#34; 错误1053:服务没有及时响应启动或控制请求&#34;。

尝试使用net命令控制服务时,例如

net stop <name>

net start <name>

这些命令失败并出现类似的错误消息。

这在我测试的所有Windows上都是一致的(直到Windows 7)。重启机器不会改变任何东西。

成功创建和运行服务无法启动或停止(甚至可以识别其状态)的任何原因?

1 个答案:

答案 0 :(得分:2)

(包括评论中的信息。)

Linux守护程序进程通过信号控制。

Windows服务有一个完整的模型。该过程需要在启动时连接到服务控制管理器(SCM:services.exe进程)以提供回调。此回调是服务的主要条目,也是SCM如何发出重要事件的信号(例如,服务应该停止)。

这涵盖在MSDN上,.NET具有特定的支持(通过子类化ServiceBase。)

也许有可能找到一个提供SCM集成的助手程序并启动你的程序,但很可能它会在SCM发送停止时终止你的进程(Windows上不存在* nix样式信号)。