如何在 Windows 2008 Server 上创建运行 .bat 文件的服务?

aby*_*byx 22 windows windows-server-2008 windows-service batch-file

我已经使用创建了服务

sc create myService binpath=myservice.bat
Run Code Online (Sandbox Code Playgroud)

但是当我启动它时,它失败并显示以下错误消息:

[SC] StartService FAILED 1053:
    The service did not respond to the start or control request in a timely fashion.
Run Code Online (Sandbox Code Playgroud)

在 Win2k3 上,我使用了资源工具包中的 srvany.exe,但没有适用于 win2k8 的资源工具包。目前我已经在我的机器上安装了 srvany.exe,但我认为这不是最好的方法。

谢谢!

小智 25

使用 NSSM 将 .BAT 或任何旧的 .EXE 文件作为服务运行。它几乎是 SRVANY 的替代品,是一款简洁的应用程序。

http://iain.cx/src/nssm/

我和你有同样的问题,NSSM 是唯一有效的实用程序。

  • 我以前没有听说过这个,但它似乎是一个有价值的工具。谢谢你的提示。 (3认同)

shy*_*ent 9

当然你不能运行这样的服务。您是否尝试在 server 2008 中使用 srvany?据我所知,s2k8 没有“官方”版本的 srvany,但是您可以随时尝试,不是吗?

编辑:哦,我忘了!我们还使用 FireDaemon 将非服务应用程序作为服务运行。尽管如此,它不是免费的,它的功能对于您的需求来说有点太多了。


小智 9

我们使用Task Scheduler在计算机启动时运行任务(无论用户是否登录)


Eva*_*son 7

您不能将 .BAT 文件或任何旧的 .EXE 文件作为服务运行。Windows 服务对您不起作用。您可以使用诸如非 Sucking Service Manager (NSSM) 或 Microsoft 的非免费 SRVANY 实用程序之类的实用程序来将任意程序作为服务运行,但您可能会发现您不会获得非常“优雅”的停止行为。