2013/06/25(火) [n年前の日記]
#2 [ruby] RSenseがサービス登録できない
Windows7 x64 + Ruby 1.9.3 p429 mingw + win32-service 0.8.0 の環境上で、RSense 0.3 がサービスとして登録できず。
管理者として開いたコマンドプロンプト上で、ruby bin\rsense service create は実行できるし、Winodwsのサービス一覧にも「RSense」の名前が見えるのだけど。ruby bin\rsense service start をするとエラーが出てしまう。
RSenseインストールフォルダ\bin\rsense の 227行目、rubyw.exe の指定がアレだったらしい。
本来は環境変数PATHあたりに rubyw.exe のある場所を追加しておくべきかもしれないのだけど、Ruby のバージョンを切り替えて動作確認したいがために、そのあたりは _pik に任せていて、PATH には追加していないわけで。その関係でマズいことになるのかもしれず。
管理者として開いたコマンドプロンプト上で、ruby bin\rsense service create は実行できるし、Winodwsのサービス一覧にも「RSense」の名前が見えるのだけど。ruby bin\rsense service start をするとエラーが出てしまう。
> ruby %RSENSE_HOME%\bin\rsense service start C:/ruby193mingw/lib/ruby/gems/1.9.1/gems/win32-service-0.8.0/lib/win32/windows/helper.rb:36:in `raise_windows_error': No such file or directory - StartService: The system cannot find the file specified. (Errno::ENOENT) from C:/ruby193mingw/lib/ruby/gems/1.9.1/gems/win32-service-0.8.0/lib/win32/service.rb:726:in `start' from C:/home/hogeuser/rsense-0.3/bin/rsense:246:in `exec_command' from C:/home/hogeuser/rsense-0.3/bin/rsense:288:in `process' from C:/home/hogeuser/rsense-0.3/bin/rsense:297:in `<main>'
RSenseインストールフォルダ\bin\rsense の 227行目、rubyw.exe の指定がアレだったらしい。
command = Shellwords.unshellwords %W(rubyw.exe #{path}/bin/rsense --config=#@config service daemon)↓
command = Shellwords.unshellwords %W(C:\\ruby193mingw\\bin\\rubyw.exe #{path}/bin/rsense --config=#@config service daemon)rubyw.exe の場所をキッチリ指定したら動くようになった。
本来は環境変数PATHあたりに rubyw.exe のある場所を追加しておくべきかもしれないのだけど、Ruby のバージョンを切り替えて動作確認したいがために、そのあたりは _pik に任せていて、PATH には追加していないわけで。その関係でマズいことになるのかもしれず。
[ ツッコむ ]
以上です。