我已经创建了一个小脚本文件来测试。
这是我的 script.bat 文件。
sc create myService binpath= C:\Users\Admin\Desktop\test.bat start= auto
这是我的 test.bat 文件。
echo "Welcome to Wizard"
问题陈述
我无法从控制面板服务部分启动该服务。
我收到以下错误。
[SC] StartService FAILED 1053: 该服务未及时响应启动或控制请求。
这就是我使用nssm的原因。
现在发生的事情是当我在powershell上运行以下命令时
。\ nssm install myService ,出现对话框。我给它脚本文件的路径,然后单击安装服务。
成功安装服务后。我去控制面板 - >服务 - >点击 myService 开始,但会暂停并显示以下对话框
注意:在我的情况下,我不能使用Always up或窗口调度程序。
答案 0 :(得分:1)
NSSM行为是由脚本几乎立即终止引起的。请尝试以下脚本:
echo Hello World
pause
这应该允许服务启动,但您不一定会看到控制台窗口。即使您勾选“允许服务与桌面交互”,它也不会与您的桌面进行交互!
Windows实现'会话零隔离'作为安全功能,这实质上阻止了服务与最终用户桌面交互。
就解决方案而言,可以使用Visual Studio简单地编写Windows“服务”应用程序。它超出了我的专业领域,但基于我熟悉的Windows应用程序,您通常会运行用户模式应用程序来提供桌面交互。用户模式应用程序可以与服务应用程序托管的服务进行交互。
答案 1 :(得分:0)
现在可能已经解决了这个问题,但如果它对任何人有帮助,对我来说挽救这一天的是再次检查我在 nssm 的参数字段中的输入。我有一个额外的“-”,它造成了错误。为了编辑我的服务,我通过 nssm edit <servicename>