将一个Ruby的exe文件作为Windows服务运行会导致错误。

13 浏览
0 Comments

将一个Ruby的exe文件作为Windows服务运行会导致错误。

我被这个问题困扰了好几天,非常感谢任何帮助。\n我有一个名为app.exe的Ruby文件,位于\"C:\\MyApp\\app.exe\"。这是一个Windows应用程序,它创建了一个系统托盘图标。当我直接点击app.exe时,一切都正常。但我想将其作为一个Windows服务,这样它就能一直存在于系统托盘中(在系统启动后对所有用户可见)。\n所以我了解到Windows中的sc命令有一些命令行参数可以用来创建服务。我正在做这个:\nsc create \"testservice\" binpath= \"C:\\Prevas\\MyApp\\app.exe\" displayname= \"Test Service\"\n然后当我启动时:\n

sc start "testservice"

\n这样做时我会得到一个错误:\n

[SC] StartService FAILED 1053:
服务没有及时响应启动或控制请求。

\n我无法理解为什么会出现这个错误,因为我能够直接启动应用程序。是否有任何参数我漏掉了或者我做错了什么?\n谢谢大家。

0
0 Comments

在运行一个Ruby exe文件作为Windows服务时出现错误。问题的原因是没有适当的工具和库来支持将Ruby程序作为Windows服务运行。解决方法是使用Win32Utils,这是一个Ruby库,可以在MS Windows上运行。该库中包含了一些预编译的二进制文件,不需要编译器即可使用。另外,还有一些方便的包装器可以使用,比如win32-service gem,可以帮助实现将Ruby程序作为Windows服务运行。建议参考Steve Johnson的两篇文章,通过这些文章可以了解如何使用Ruby创建Windows服务的方法。

文章如下:

你可以参考 这个问题

查看 Win32Utils - Ruby library for MS Windows。根据文档,

请注意,一些库,比如win32-api和win32-service,

有一些包含了预编译的二进制文件的gem,因此不需要编译器。

只需像安装其他gem一样安装它们即可。

有一些很好的包装器可用于这些Utils。其中一个是win32-service gem,它可以帮助您实现这一目标。建议阅读Steve Johnson的两篇文章,Part 1Part 2,了解如何创建一个Ruby Windows服务。

0