停止选项显示为灰色时停止Windows服务

时间:2011-06-09 17:47:42

标签: windows-services

我已经在控制面板的服务中创建了一个Windows服务 - >管理工具 - >服务,它的地位正在开始。

我想停止此服务,但停止选项显示为灰色。 我该如何开始/停止服务?

每次重新启动,它都会停止,我可以将其删除。

10 个答案:

答案 0 :(得分:134)

如果您运行命令:

sc queryex <service name>

在哪里是服务的名称,而不是显示名称(假脱机程序,而不是后台打印程序),在cmd提示符下,它将返回运行该服务的进程的PID。拿那个PID然后运行

taskkill /F /PID <Service PID>

强制PID停止。有时,如果进程挂起,而停止GUI则不允许您对服务执行任何操作。

答案 1 :(得分:20)

您可以在一行中执行此操作(对于ci环境很有用):

taskkill /fi "Services eq SERVICE_NAME" /F

过滤器 - &gt;服务 - &gt; ServiceName等于SERVICE_NAMES - &gt;力

来源:https://technet.microsoft.com/en-us/library/bb491009.aspx

答案 2 :(得分:6)

如果停止选项显示为灰色,那么您的服务在上次调用SetServiceStatus时未表明它正在接受SERVICE_ACCEPT_STOP。如果您使用的是.NET,则需要在ServiceBase中设置CanStop属性。

当然,如果您接受停止请求,那么您最好确保您的服务可以安全地处理这些请求,尤其是当您的服务仍在使用其启动代码时。

答案 3 :(得分:6)

使用任务管理器找到服务并使用结束任务从那里终止服务 总能帮到我。

如果您自己制作了服务,请考虑从OnStart事件中删除长时间运行操作,这通常是导致服务无响应的原因。

答案 4 :(得分:1)

使用admin访问权限打开命令提示符并在其中键入以下命令。

a)

tasklist

显示所有可用服务的列表。在那里,您可以看到要停止/启动/重新启动的服务。记住要强制停止的服务的PID值。

b)现在输入

taskkill /f /PID [PID value of the service] 

然后按Enter键。成功后,您将收到消息 “成功:PID的过程已经终止”。

Ex : taskkill /f /PID 5088

这会强行杀死冻结的服务。您现在可以返回到服务器管理器并重新启动该服务。

答案 5 :(得分:1)

正如Aaron上面提到的,某些服务在开发时不接受SERVICE_ACCEPT_STOP个消息。这被硬编码到可执行文件中。期。 workaroud不会让它开始,因为你不能改变它的属性,强行执行以下操作:

  1. 启动到安全模式(Windows 10用户可能需要msconfig&gt; boot&gt;安全启动)
  2. 注册HKLM&gt;系统&gt; 服务
  3. 找到您的服务条目
  4. 将“开始”键更改为3(手动启动)或4(禁用)
  5. 如果您无法更改条目,请右键单击左侧窗格中的服务名称,选择“权限”,检查“所有人”是否具有完全访问权限,然后再次尝试步骤4.

    不要忘记再次从msconfig禁用安全启动,然后重新启动!

答案 6 :(得分:1)

sc queryex <service name>
taskkill /F /PID <Service PID>

例如

enter image description here

eg

答案 7 :(得分:0)

这里有一个简单的方法来终止一个你不能直接停止的服务,如果该服务有依赖关系。

  1. 打开服务的属性窗口并点击依赖项标签
  2. 看看它需要什么来运行
  3. 如果可能,请停止其中之一,确保它也不会使 Windows 崩溃

例如,停止“网络存储接口服务”又名 nsi 将杀死无法杀死的 dnscache 服务。它还会杀死所有网络功能,并且可能需要重新启动 Windows 才能恢复它们。我不得不这样做来编辑主机文件,有时 dnscache 拒绝放手&你不能在不先杀死它的情况下更新主机,但你不能直接这样做。

答案 8 :(得分:-1)

我遇到了同样的问题。如果您不是计算机管理员,则需要以管理员身份运行服务。

答案 9 :(得分:-1)

我通过以下步骤解决了问题:

  1. 从命令/ Windows RUN打开“services.msc”。

  2. 找到服务(灰色)。

  3. 双击该服务,然后转到“恢复”标签。

  4. 确保

    • 首次失败操作被选为“不采取行动”。
    • 第二次失败操作被选为“不采取行动”。
    • 后续失败操作被选为“不采取行动”。

    然后按确定。

  5. 现在,该服务不会尝试重新启动,您可以从服务列表中删除灰色服务(即灰色将消失)。