class FluentdService

Public Class Methods

new(service_name) click to toggle source
# File lib/fluent/winsvc.rb, line 54
def initialize(service_name)
  @service_name = service_name
end

Public Instance Methods

service_main() click to toggle source
# File lib/fluent/winsvc.rb, line 58
def service_main
  @pid = service_main_start(@service_name)
  while running?
    sleep 10
  end
end
service_paramchange() click to toggle source
# File lib/fluent/winsvc.rb, line 72
def service_paramchange
  set_event("#{@service_name}_USR2")
end
service_stop() click to toggle source
# File lib/fluent/winsvc.rb, line 65
def service_stop
  set_event(@service_name)
  if @pid > 0
    Process.waitpid(@pid)
  end
end
service_user_defined_control(code) click to toggle source
# File lib/fluent/winsvc.rb, line 76
def service_user_defined_control(code)
  case code
  when 128
    set_event("#{@service_name}_HUP")
  when 129
    set_event("#{@service_name}_USR1")
  when 130
    set_event("#{@service_name}_CONT")
  end
end

Private Instance Methods

set_event(event_name) click to toggle source
# File lib/fluent/winsvc.rb, line 89
def set_event(event_name)
  ev = Win32::Event.open(event_name)
  ev.set
  ev.close
end