class Guard::Rack::CustomProcess::Nix

Public Instance Methods

kill(pid, force = false) click to toggle source
# 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