2011-02-07 15 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 

これは私がサービスは、サービスが、私はサービスからサービスを開始しようと登録された後、「RubyGemsのは」

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

「をwin32の/サービス」を必要と 必要 登録するために使用するコードです。 msc。 I「エラー1053:そのサービスは指定時間内に開始要求または制御要求に応答しませんでした」と言うエラーが出る

答えて

2

はIRBのセッションを開くと言う - 「のWin32 /デーモン」を必要と

たぶんあなた特に、プラットフォームmswin32用のwin32-service gemをインストールしている場合、1053の問題に対する答えが得られます。

私は同じ問題を抱えていました.Wind32サービスの宝石は、devkitをインストールした後であっても、私のマシン上でプラットフォームのルビーのために構築されません。結局、私は最新のコードからのWin32サービスの宝石を構築することにより終了「__try」宣言されていない(この機能で最初に使用する)

:7::141:エラーそれは永続的エラー

のWin32/daemon.c以下くれましたギターで

+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

関連する問題