Stopping a windows service when the stop option is grayed out
我已经创建了Windows服务,并且在控制面板中的服务->管理工具->服务中,其状态正在开始。
我想停止此服务,但"停止"选项显示为灰色。
如何启动/停止服务?
每次重新启动时,它都会停止,可以删除它。
如果运行命令:
1 | sc queryex <service name> |
其中的服务名称,而不是显示名称(假脱机程序,而不是打印假脱机程序),在cmd提示符下,它将返回运行该服务的进程的PID。取得该PID并运行
1 | taskkill /F /PID <Service PID> |
强制PID停止。有时,如果在停止GUI时进程挂起,则您无法使用该服务执行任何操作。
您可以在一行中完成此操作(适用于ci环境):
1 | taskkill /fi"Services eq SERVICE_NAME" /F |
筛选->服务-> ServiceName等于SERVICE_NAMES->强制
来源:https://technet.microsoft.com/en-us/library/bb491009.aspx
如果停止选项显示为灰色,则您的服务在最后一次调用
当然,如果您接受停止请求,则最好确保您的服务可以安全地处理这些请求,尤其是在您的服务仍在通过其启动代码进行的情况下。
使用任务管理器找到服务,然后使用"结束任务"从那里杀死它。
总是对我有用。
如果您自己制作了服务,请考虑从OnStart事件中删除长时间运行的操作,通常这是导致服??务无响应的原因。
如上文Aaron所述,某些服务在开发之时不接受
如果您无法更改条目,请在左窗格上右键单击您的服务名称,选择"权限",检查"所有人"是否具有完全访问权限,然后再次尝试步骤4。
不要忘记再次从msconfig禁用安全启动,然后重新启动!
1 2 | sc queryex <service name> taskkill /F /PID <Service PID> |
例如
打开具有管理员访问权限的命令提示符,然后在其中键入以下命令。
一个)
1 | tasklist |
它显示所有可用服务的列表。在那里您可以看到要停止/启动/重新启动的服务。记住要强制停止的服务的PID值。
b)现在输入
1 | taskkill /f /PID [PID value of the service] |
然后按回车。成功的话,您会得到信息
"成功:具有PID的过程已终止"。
1 | Ex : taskkill /f /PID 5088 |
这将强行终止冻结的服务。现在,您可以返回服务器管理器并重新启动服务。
我通过以下步骤解决了这个问题:
从命令/ Windows RUN中打开" services.msc"。
查找服务(显示为灰色)。
双击该服务,然后转到"恢复"选项卡。
确保这件事
- 首次失败操作被选择为"不执行任何操作"。
- 将第二次失败操作选择为"不执行任何操作"。
- 后续失败操作被选择为"不执行任何操作"。
然后按
现在,该服务将不会尝试重新启动,您可以从服务列表中删除变灰的服务(即变灰的将消失)。
我有同样的问题。如果您不是计算机上的管理员,则需要以管理员身份运行服务。