使用以下命令在 cmd 中创建一个服务
c:\>sc create "DellCare" start= auto displayname= "DellCareService" binpath= "C:\Users\Dev Parzival\Desktop\bat\DellCare\DellCare.bat"
[SC] CreateService SUCCESS
当我重新启动笔记本电脑时,服务戴尔关怀没有开始。
c:\>sc query DellCare
SERVICE_NAME: DellCare
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
戴尔维护工具
@echo on
cd /D E:\code\pro\DellCare\out
echo Present working directory - %cd%
java --module-path "C:\thirdparty\javafx-sdk-14.0.1\lib;E:\code\pro\DellCare\out;" --add-modules javafx.controls,javafx.graphics -cp ".;C:\thirdparty\javafx-sdk-14.0.1\lib\*" dellcare.mainclass.MainClass
当我尝试手动启动服务时出现错误
C:\WINDOWS\system32>sc start dellcare
[SC] StartService FAILED 1053:
The service did not respond to the start or control request in a timely fashion.
然后参观此链接并最终创造了服务管道超时里面HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\控制但是当我启动 dellcare 服务时仍然出现相同的错误,提示服务没有及时响应...
为什么 DellCare 服务没有启动以及如何修复它?
提前致谢。
答案1
你不能运行任何一个exe
或bat
作为一项服务,因为
系统服务
是专门为通过特殊协议与 Windows 交互而编写的,供命令使用sc
。
服务通常以控制台应用程序的形式编写,以控制台应用程序的入口点作为主要功能,由其 服务入口点 并继续 ServiceMain 函数。
但是,您可以使用实现所需协议的程序来封装程序或批处理文件。
您可以使用:
- NSSM——非吸吮服务管理器
(免费和开源)
2017 年最新更新。 - 永远向上 (商业的)
- 很多别的 备择方案。
答案2
据我所知,Windows 服务通常需要一些额外的配置而不是一个命令行。
如果您尝试打开Services
并services.msc
手动启动刚刚创建的服务,应该会出现以下消息:
Windows could not start the service on Local Computer.
Error 1053: The service did not respond to the start or control request in a timely fashion.
如果您只需要在每次 Windows 启动时运行某个脚本(对于当前用户),您可以复制该.bat
文件并将其快捷方式粘贴到 中。另一种访问方法是在 Explorer 地址栏中"%AppData%\Microsoft\Windows\Start Menu\Programs\Startup"
输入。shell:startup
当前用户下次登录时,脚本将自动运行。您可以通过 检查它是否已添加并启用Task Manager -> Startup
。