我几天坚持这个问题,任何帮助都会非常感激。
有一个名为app.exe
的ruby文件位于"C:\MyApp\app.exe"
。这是一个Windows应用程序,它创建一个系统托盘图标。当我直接点击app.exe
时,这很好用。但是我想将它作为一个Windows服务,以便它始终在系统托盘上(在系统启动给所有用户之后)。
所以我了解到Windows中的sc
命令有一些命令行参数可用于创建服务。我这样做:
sc create "testservice" binpath= "C:\Prevas\MyApp\app.exe" displayname= "Test Service
“
当我开始时:
sc start "testservice"
当我这样做时,我得到一个错误:
[SC] StartService FAILED 1053:
The service did not respond to the start or control request in a timely fashion.
无法理解我看到此错误的原因,因为我可以直接启动应用。我遗失的任何参数或我做错的任何事情?
谢谢你们
答案 0 :(得分:2)
你应该看看this question。
查看Win32Utils - Ruby library for MS Windows。
来自文档,
请注意,某些库(如win32-api和win32-service)具有 包含预构建二进制文件的gem,因此不需要编译器 那些库。只需像安装任何其他宝石一样安装它们。
这些Utils有一些不错的包装器。 win32-service是一个这样的宝石将帮助你实现这一目标。
阅读史蒂夫约翰逊的这些Create a Windows Service with Ruby Part 1,Part 2文章。