无法使用NSSM在窗口10中启动服务
我已经创建了一个小脚本文件来测试。无法使用NSSM在窗口10中启动服务
这是我的script.bat文件。
sc create myService binpath= C:\Users\Admin\Desktop\test.bat start= auto
这是我test.bat的文件。
echo "Welcome to Wizard"
问题陈述
我无法从控制面板服务节启动该服务。
我得到以下错误。
[SC] StartService失败1053: 该服务未及时响应启动或控制请求。
这就是为什么我使用nssm。
什么现在发生的事情是,当我运行下面的PowerShell上
命令。\ NSSM安装为myService,我会出现对话框。我给它的脚本文件的路径,然后单击安装服务。
成功安装服务后。我进入控制面板 - >服务 - >点击开始对为myService但它得到停下来,下面的对话框出现
- 我该如何解决这个问题?
- 是否有任何其他的方式来做到这一点,而无需手动操作,也不需要使用第三方工具。
- 我在窗口10上做了所有这些工作。我是否需要任何服务器来执行此任务?
注:我不能在我的情况下使用Always up或window scheduler。
NSSM行为是由脚本几乎立即终止引起的。试试下面的脚本:
echo Hello World pause
这应使服务能够启动,但你不一定会看到一个控制台窗口。即使您勾选'允许服务与桌面互动',它也不会与您的桌面互动!
Windows实施“会话零隔离”作为安全功能,这基本上阻止了服务与终端用户桌面的交互。
就解决方案而言,可以使用Visual Studio很简单地编写Windows'服务'应用程序。它不在我的专业领域,但基于我熟悉的Windows应用程序,您通常会运行一个用户模式应用程序来提供桌面交互。用户模式应用程序可以与服务应用程序托管的服务进行交互。
我已经添加了暂停语句,但行为相同:(我也试图运行exe文件而不是蝙蝠,但问题仍然是相同的。对于在VS中开发服务,现在没有选项,我会看到你给我的链接 –
通过从Windows资源管理器启动批处理文件(双击它),验证批处理文件的行为是否符合预期,您应该看到一个控制台窗口,显示消息,然后按提示按钮按一个键,控制台窗口将关闭 – andyb
当我按下某个键时,我添加了一个回显的批处理文件打开和关闭,但是我正在创建服务的文件没有打开(脚本。 bat)sc创建myService binpath = C:\ Users \ Admin \ Desktop \ test.bat start = auto –
可能是因为您的脚本立即退出。你为“退出行动”配置了什么? –
@HarryJohnston我还没有配置任何东西,我只是想创建一个基本的文件,因为我是批处理脚本中的新成员,但将来我想运行logstash作为后台服务。 –
您是否看到有关需要使用特定版本的Windows 10用户的评论?:https://nssm.cc/download - “Windows 10创作者更新 2017-04-26:Windows 10创作者更新的用户应该使用为了避免服务无法启动的问题,如果由于某种原因您不能使用该版本,您还可以在注册表中设置AppNoConsole = 1,注意期望控制台窗口的应用程序可能会出现意外情况。 – andyb