Command line Windows服务控制字符

Command line Windows服务控制字符,command-line,windows-services,control-characters,Command Line,Windows Services,Control Characters,我创建了一个Windows服务,并希望向其发送一个control+B或control+C控件值。我知道我可以使用sc控件,但我想知道是否有一个位置包含我可以发送的所有可能值。有一个sc-stop方法,但我希望给它发送一个控制字符。服务关闭的“优雅性”取决于您的服务如何响应请求。如果您正在编写服务,那么当SCM发送“停止”请求时,您可以完全控制服务的响应方式。收到请求后,您有有限的时间(Windows决定时间)停止服务并响应控制请求。如果您未能及时响应,Windows可能会意外终止您的服务进程 控

我创建了一个Windows服务,并希望向其发送一个control+B或control+C控件值。我知道我可以使用sc控件,但我想知道是否有一个位置包含我可以发送的所有可能值。有一个sc-stop方法,但我希望给它发送一个控制字符。

服务关闭的“优雅性”取决于您的服务如何响应请求。如果您正在编写服务,那么当SCM发送“停止”请求时,您可以完全控制服务的响应方式。收到请求后,您有有限的时间(Windows决定时间)停止服务并响应控制请求。如果您未能及时响应,Windows可能会意外终止您的服务进程


控制台应用程序可以使用函数响应Ctrl+C请求。但是,服务进程不是在控制台窗口内运行的,因此此处理程序完全不适用于服务。

Windows服务由Windows服务控制管理器(SCM)管理,可使用
sc
命令访问该管理器。为什么该命令(或
净启动/停止
)不够?这还不够的用例是什么?如果您正在查找
sc
工具的文档,只需在命令提示符下键入
sc
,您将看到您可以发送的“所有可能值”。我同意我应该使用net stop或sc stop,但它们不能正常关闭服务,我正在寻找一种方法,该方法将使用control+B关闭服务。control+B与control+C类似,只是B在windows.net中进行更优雅的关闭。stop确实会优雅地关闭服务,因为服务会收到一个要响应和清理的OnStop事件。这是一个只包含在某个服务包装中的常规EXE的服务吗?经过进一步的调查,我发现当我通过命令行(sc start)启动服务时,我会得到如下状态:(NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)。我认为这可能是问题的原因。