这是我尝试作为服务运行的代码。
require 'rubygems'
require 'win32/daemon'
require 'win32/service'
include Win32
class Daemon
def service_main
while running?
sleep 3
File.open("c:\\test.log", "a"){ |f| f.puts "service is running" }
end
end
def service_stop
exit!
end
end
Daemon.mainloop
这是我用来注册服务的代码 要求'rubygems' 要求'win32 / service'
include Win32
SERVICE_NAME = 'ruby_sample1'
# Create a new service
ser = Service.create({
:service_name => SERVICE_NAME,
:service_type => Service::WIN32_OWN_PROCESS,
:description => 'A custom service I wrote just for fun',
:start_type => Service::AUTO_START,
:error_control => Service::ERROR_NORMAL,
:binary_path_name => 'c:\\Ruby186\\bin\\ruby.exe -C c:\\temp\\test.rb',
:load_order_group => 'Network',
:dependencies => ['W32Time','Schedule'],
:display_name => SERVICE_NAME
})
注册服务后,我尝试从services.msc启动服务。我收到错误消息“错误1053:服务没有及时响应启动或控制请求”
答案 0 :(得分:2)
打开一个irb会话并说 - require'win32 / daemon'
最有可能你会得到1053问题的答案,特别是如果你已经为平台mswin32安装了win32-service gem。
我遇到了同样的问题,即使在安装devkit之后,win32-service gem也不会在我的机器上为平台ruby构建。它一直给我以下错误
win32 / daemon.c:141:7:错误:'__ try'unclaclared(首次在此函数中使用)
最终我通过在github上的最新代码构建win32-service gem结束了。