Sha256: 757631b71c42d7b54ce75b6cf735a3430342fd7a9bc0e6cab7201b123dd1d2e8

Contents?: true

Size: 713 Bytes

Versions: 4

Compression:

Stored size: 713 Bytes

Contents

module DeepTest
  module Demon
    def forked(name, options, demon_args)
      options.connect_to_central_command do |wire|
        ProxyIO.replace_stdout_stderr!(wire) do
          begin
            catch(:exit_demon) do
              Signal.trap("TERM") { throw :exit_demon }
              execute *demon_args
            end
          rescue SystemExit => e
            raise
          rescue Exception => e
            FailureMessage.show self.class.name, "Process #{Process.pid} exiting with excetion: #{e.class}: #{e.message}"
            raise
          end
        end
      end
    end

    def execute(*args)
      raise "#{self.class} must implement the execute method to be a Demon"
    end
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
deep_test_pre-2.0 lib/deep_test/demon.rb
jstorimer-deep-test-2.0.0 lib/deep_test/demon.rb
jstorimer-deep-test-0.2.0 lib/deep_test/demon.rb
jstorimer-deep-test-0.1.0 lib/deep_test/demon.rb