使用NSSM在Windows 10上无法启动服务

3

我创建了一个小脚本文件进行测试。

这是我的 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旁边的启动按钮,但它会暂停并出现以下对话框。

enter image description here

  1. 我该如何解决这个问题?
  2. 有没有其他方法可以在不进行手动步骤且不使用第三方工具的情况下完成此操作。
  3. 我正在window 10上执行所有操作。我需要任何服务器才能执行此任务吗?

注意:在我的情况下,我不能使用Always up或window scheduler。


@HarryJohnston 我还没有配置任何东西,我只是想创建一个基本的文件,因为我是批处理脚本的新手,但将来我想将logstash作为后台服务运行。 - Mishi
@andyb 在我的脚本中,我将使用cmd或powershell从用户那里获取一些输入,然后创建一些目录并提取logstash设置并将其作为服务运行。我不能更改注册表中的任何内容或使用任何第三方工具,这是限制条件。您有其他解决方案吗?或者如果我编写一个完整的服务,我仍然会面临这个问题吗? - Mishi
我不知道。我从来没有使用过NSSM,但注意到了警告。也许值得尝试他们指定的备用构建。 - andyb
让我们在聊天中继续这个讨论。链接:http://chat.stackoverflow.com/rooms/152017/discussion-between-andyb-and-miki-jay。 - andyb
1
这不是一个编程问题,因此不适合在SO上发布。SuperUser是更适合此类问题的地方。 - Ansgar Wiechers
显示剩余8条评论
3个回答

4
NSSM的行为是由于脚本几乎瞬间终止所导致的。尝试以下脚本: echo 你好世界 pause 这样应该可以让服务启动,但您不一定会看到控制台窗口。即使您勾选了“允许服务与桌面交互”,它也不会与您的桌面交互! Windows实现了“会话零隔离”作为安全功能,这基本上防止了服务与最终用户桌面的交互。 就解决方案而言,使用Visual Studio相当容易编写Windows“服务”应用程序。这超出了我的专业领域,但基于我熟悉的Windows应用程序,通常会运行一个用户模式应用程序以提供桌面交互。用户模式应用程序可以与由服务应用程序托管的服务进行交互。

我在批处理文件中添加了一个回显,当我按下一个键时,它会打开并关闭,但是我创建服务的文件没有打开。(Script.bat)sc create myService binpath= C:\Users\Admin\Desktop\test.bat start= auto - Mishi
我正在使用Windows 10。我需要一个服务器来创建这个服务吗? - Mishi
NSSM可以在Win 10上运行。昨天我在我的Win10笔记本电脑上使用NSSM将批处理文件作为服务启动。不过,根据你的笔记本电脑配置,当它运行时,你可能无法看到控制台窗口。 - andyb
你不能使用SC命令将批处理文件设置为服务。 - andyb
让我们在聊天室里继续这个讨论 - andyb
显示剩余2条评论

2
也许这个问题已经解决了,但如果有人需要帮助的话,我想说的是,对我最有帮助的是再次检查nssm参数字段中的输入。 我多加了一个“-”,导致出现错误。 要编辑我的服务,我通过 nssm edit <servicename> 进入。

0
我也想补充一下我的解决方法。我在参数路径中加入了双引号,这对我来说解决了问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接