2011-02-07 4 views
1

이것은 서비스로 실행하려고 시도하는 코드입니다. Win32Utils를 사용하여 데몬 생성이 작동하지 않습니다. ruby ​​gem

  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 

내가 이 서비스가 나는 서비스에서 서비스를 시작하려고 등록한 후 '젬'이 필요한 '는 Win32/서비스'

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 
}) 

필요로하는 서비스를 등록하는 데 사용하는 코드입니다. msc. 나는라는 오류 "오류 1053 : 적시에 시작이나 제어 요청에 응답하지 않았습니다 서비스"

답변

2

는 IRB 세션을 열고 말 - '는 Win32/데몬'당신

대부분의 경우이 필요 특히 플랫폼 mswin32 용 win32-service gem을 설치 한 경우 1053 문제에 대한 해답을 얻을 수 있습니다.

devkit을 설치 한 후에도 동일한 문제가 발생하고 win32-service gem이 내 컴퓨터에서 플랫폼 루비를 빌드하지 않습니다. 141 : 그것은 지속적으로 오류

다음

는 Win32/daemon.c을 준 7 : 오류 : '__try'선언되지 않은

은 결국 나는 최신 코드로부터는 Win32 서비스 보석을 구축하여 종료 (먼저이 기능에 사용) github에.

+1

네, 저에게 도움이되었습니다. +1. 0.7.2에서 수정 된 것으로 보입니다. 그러나 기다릴 수 없다면 'git clone '을 실행하십시오. 그런 다음 결과 디렉토리에서 'gem build win32-service'를 실행하십시오. gemspec 'then gem install --local win32-service-0.7.2.gem'RubyInstaller 빌드에 대해 항상 오류가 있으므로 mswin32 버전을 제거하십시오. – dankingsbury

관련 문제