Class: Guard::Rack::CustomProcess::Nix

Inherits:
Guard::Rack::CustomProcess show all
Defined in:
lib/guard/rack/custom_process.rb

Instance Attribute Summary

Attributes inherited from Guard::Rack::CustomProcess

#options

Instance Method Summary collapse

Methods inherited from Guard::Rack::CustomProcess

#initialize, new

Constructor Details

This class inherits a constructor from Guard::Rack::CustomProcess

Instance Method Details

#kill(pid, force = false) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/guard/rack/custom_process.rb', line 23

def kill(pid, force = false)
  result = -1
  UI.debug("Trying to kill Rack (PID #{pid})...")
  unless force
    ::Process.kill('INT', pid)
    begin
      Timeout.timeout(options[:timeout]) do
        _, status = ::Process.wait2(pid)
        result = status.exitstatus
        UI.debug("Killed Rack (Exit status: #{result})")
      end
    rescue Timeout::Error
      UI.debug("Couldn't kill Rack with INT, switching to TERM")
      force = true
    end
  end
  ::Process.kill('TERM', pid) if force
  result
end