# Win32-service-0.6.1 using a Rails Model

**URL:** <https://www.ruby-forum.com/t/win32-service-0-6-1-using-a-rails-model/135242>\
**Category:** Rails\
**Created:** [April 19, 2008, 6:11pm UTC](https://www.ruby-forum.com/t/win32-service-0-6-1-using-a-rails-model/135242 "2008-04-19T18:11:10Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![david](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/aeb1de/32.png) [@david](https://www.ruby-forum.com/u/david)\
**Post date:** [April 19, 2008, 6:11pm UTC](https://www.ruby-forum.com/t/win32-service-0-6-1-using-a-rails-model/135242/1 "2008-04-19T18:11:10Z")

</div>

Windows 2000 SP4  
Ruby 1.8.6  
Rail 1.2.6

I’m trying to create a Rail application for our internal use to  
provide a one stop access to services. I’m currently trying to get the  
Server.status, Service.stop and Service.start to work through a model  
in Rails. The Service.\* functions work well through Ruby itself, but  
seems to have problem through a Rails Model. I’ve been trying to  
display the status of the MySQL service.

\*\*\* Model

require “win32/service”

class Servicectl

include Win32

attr\_reader :state

```
def servicestatus(service_name, host_name)
  @state = Service.status(service_name, host_name)
end

def servicestart(service_name, host_name)
  Service.start(service_name, host_name)
end

def servicestop(service_name, host_name)
  Service.stop(service_name, host_name)
end

```

end

\*\*\* Controller

class ServicectlController \< ApplicationController

def show  
service\_state = Servicectl.new  
service\_state.servicestatus(“MySQL”,nil)  
@status = service\_state.state  
end

end

\*\*\* Show View

\<%= @status %\>

The following error is posted to the development.log.

Processing ServicectlController#show (for 127.0.0.1 at 2008-04-19  
11:53:46) [GET]  
Session ID: d446bf0a6cad825dbf5d1a78e6853706  
Parameters: {“action”=\>“show”, “controller”=\>“servicectl”}

Win32::Service::Error (T):  
c:/ruby/lib/ruby/gems/1.8/gems/win32-service-0.6.1-x86-mswin32-60/  
lib/win32/service.rb:920:in `status' C:/Shared/SourceCode/Rails/sandbox/app/models/servicectl.rb:14:in`servicestatus’  
C:/Shared/SourceCode/Rails/sandbox/app/controllers/  
servicectl\_controller.rb:9:in `show' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/ action_controller/base.rb:1101:in`send’  
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/  
action\_controller/base.rb:1101:in `perform_action_without_filters' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/ action_controller/filters.rb:696:in`call\_filters’  
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/  
action\_controller/filters.rb:688:in `perform_action_without_benchmark' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/ action_controller/benchmarking.rb:66:in`perform\_action\_without\_rescue’  
c:/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/ action_controller/benchmarking.rb:66:in`perform\_action\_without\_rescue’  
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/  
action\_controller/rescue.rb:83:in `perform_action' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/ action_controller/base.rb:435:in`send’  
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/  
action\_controller/base.rb:435:in `process_without_filters' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/ action_controller/filters.rb:684:in`process\_without\_session\_management\_support’  
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/  
action\_controller/session\_management.rb:114:in `process' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/ action_controller/base.rb:334:in`process’  
c:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.6/lib/dispatcher.rb:41:in  
`dispatch' c:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.6/lib/webrick_server.rb: 113:in`handle\_dispatch’  
c:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.6/lib/webrick\_server.rb:  
79:in `service' c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in`service’  
c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' c:/ruby/lib/ruby/1.8/webrick/server.rb:173:in`start\_thread’  
c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start' c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in`start\_thread’  
c:/ruby/lib/ruby/1.8/webrick/server.rb:95:in `start' c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in`each’  
c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `start' c:/ruby/lib/ruby/1.8/webrick/server.rb:23:in`start’  
c:/ruby/lib/ruby/1.8/webrick/server.rb:82:in `start' c:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.6/lib/webrick_server.rb: 63:in`dispatch’  
c:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.6/lib/commands/servers/  
webrick.rb:59  
c:/ruby/lib/ruby/site\_ruby/1.8/rubygems/custom\_require.rb:27:in  
`gem_original_require' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in`require’  
c:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/  
active\_support/dependencies.rb:495:in `require' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/ active_support/dependencies.rb:342:in`new\_constants\_in’  
c:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/  
active\_support/dependencies.rb:495:in `require' c:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.6/lib/commands/server.rb: 39 c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in`gem\_original\_require’  
c:/ruby/lib/ruby/site\_ruby/1.8/rubygems/custom\_require.rb:27:in  
`require’  
script/server:3

I have no idea why it is failing, I’m hoping someone might have a clue  
for me.

For reference this is the working code which works well though Ruby  
itself.

\*\*\* service.rb

require “win32/service”

class ServiceController

include Win32

attr\_accessor :state

```
def status(service_name, host_name)
  @state = Service.status(service_name, host_name)
end

def start(service_name, host_name)
  Service.start(service_name, host_name)
end

def stop(service_name, host_name)
  Service.stop(service_name, host_name)
end

```

end

\*\*\* Output:

C:\Shared\SourceCode\Ruby\>ruby service.rb  
running

Thanks for all your time,  
Dave
