Sha256: 9e62a3ee80a5a11dbbc176b17855068a5ab42010ce160fc7706e997d0c11fcf8
Contents?: true
Size: 1.18 KB
Versions: 36
Compression:
Stored size: 1.18 KB
Contents
require 'win32/daemon' module MCollective class WindowsDaemon < Win32::Daemon 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 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 def service_stop Log.info("Windows service stopping") @runner.stop end def service_pause Log.info("Pausing MCollective Windows server") @runner.pause end def service_resume Log.info("Resuming MCollective Windows server") @runner.resume end end end
Version data entries
36 entries across 36 versions & 1 rubygems