class MCollective::WindowsDaemon
Public Class Methods
daemonize_runner(pid=nil)
click to toggle source
# File lib/mcollective/windows_daemon.rb, line 6 def self.daemonize_runner(pid=nil) raise "Writing pid files are not supported on the Windows Platform" if pid raise "The Windows Daemonizer should only be used on the Windows Platform" unless Util.windows? WindowsDaemon.mainloop end
Public Instance Methods
service_main()
click to toggle source
# File lib/mcollective/windows_daemon.rb, line 13 def service_main Log.debug("Starting Windows Service Daemon") @runner = Runner.new(nil) @runner.main_loop # On shut down there may be threads outside of the runner's context that are # in a sleeping state, causing the stop action to wait for them to cleanly exit. # We get around this by iterating the list of threads and killing everything that # isn't the main thread, letting us shut down cleanly. Thread.list.each do |t| if t != Thread.current t.kill end end end
service_pause()
click to toggle source
# File lib/mcollective/windows_daemon.rb, line 35 def service_pause Log.info("Pausing MCollective Windows server") @runner.pause end
service_resume()
click to toggle source
# File lib/mcollective/windows_daemon.rb, line 40 def service_resume Log.info("Resuming MCollective Windows server") @runner.resume end
service_stop()
click to toggle source
# File lib/mcollective/windows_daemon.rb, line 30 def service_stop Log.info("Windows service stopping") @runner.stop end